![]() |
Diwa
Lightweight implementation of Artificial Neural Network for resource-constrained environments
|
Lightweight Feedforward Artificial Neural Network (ANN) library tailored for microcontrollers. More...
#include <diwa.h>
Public Member Functions | |
Diwa () | |
Default constructor for the Diwa class. | |
~Diwa () | |
Destructor for the Diwa class. | |
DiwaError | initialize (int inputNeurons, int hiddenLayers, int hiddenNeurons, int outputNeurons, bool randomizeWeights=true) |
Initializes the Diwa neural network with specified parameters. | |
double * | inference (double *inputs) |
Perform inference on the neural network. | |
void | train (double learningRate, double *inputNeurons, double *outputNeurons) |
Train the neural network using backpropagation. | |
DiwaError | loadFromFile (std::ifstream &annFile) |
Load neural network model from file in non-Arduino environment. | |
DiwaError | saveToFile (std::ofstream &annFile) |
Save neural network model to file in non-Arduino environment. | |
Lightweight Feedforward Artificial Neural Network (ANN) library tailored for microcontrollers.
The Diwa library is designed to provide a simple yet effective implementation of a Feedforward Artificial Neural Network (ANN) for resource-constrained microcontroller environments such as ESP8266, ESP32, and similar development boards.
Diwa::Diwa | ( | ) |
Diwa::~Diwa | ( | ) |
double * Diwa::inference | ( | double * | inputs | ) |
Perform inference on the neural network.
Given an array of input values, this method computes and returns an array of output values through the neural network.
inputs | Array of input values for the neural network. |
DiwaError Diwa::initialize | ( | int | inputNeurons, |
int | hiddenLayers, | ||
int | hiddenNeurons, | ||
int | outputNeurons, | ||
bool | randomizeWeights = true |
||
) |
Initializes the Diwa neural network with specified parameters.
This method initializes the Diwa neural network with the given parameters, including the number of input neurons, hidden layers, hidden neurons per layer, and output neurons. Additionally, it allows the option to randomize the weights in the network if desired.
inputNeurons | Number of input neurons in the neural network. |
hiddenLayers | Number of hidden layers in the neural network. |
hiddenNeurons | Number of neurons in each hidden layer. |
outputNeurons | Number of output neurons in the neural network. |
randomizeWeights | Flag indicating whether to randomize weights in the network (default is true). |
DiwaError Diwa::loadFromFile | ( | std::ifstream & | annFile | ) |
Load neural network model from file in non-Arduino environment.
This method loads a previously saved neural network model from the specified file in a non-Arduino environment. It reads the model data from the given file stream and initializes the Diwa object with the loaded model parameters and weights.
annFile | Input file stream representing the neural network model file. |
DiwaError Diwa::saveToFile | ( | std::ofstream & | annFile | ) |
Save neural network model to file in non-Arduino environment.
This method saves the current state of the neural network model to the specified file in a non-Arduino environment. It writes the model parameters and weights to the given file stream, facilitating storage and retrieval of the trained model.
annFile | Output file stream representing the destination file for the model. |
void Diwa::train | ( | double | learningRate, |
double * | inputNeurons, | ||
double * | outputNeurons | ||
) |
Train the neural network using backpropagation.
This method facilitates the training of the neural network by adjusting its weights based on the provided input and target output values.
learningRate | Learning rate for the training process. |
inputNeurons | Array of input values for training. |
outputNeurons | Array of target output values for training. |