#include <CscNeuralNetworkBuilderTensorFlow.h>
Public Member Functions | |
| CscNeuralNetworkBuilderTensorFlow (CscNeuralNetwork::TrainingHyperparameters *trainingHypeparametersInit, CscNeuralNetwork::NeuralNetworkHyperparameters *nnHyperparametersInit, float **weightsLoadedFromModelInit=nullptr, float **biasesLoadedFromModelInit=nullptr) | |
| virtual | ~CscNeuralNetworkBuilderTensorFlow () |
| TF_Graph * | getGraph () const |
| TF_Status * | getStatus () const |
| TF_Operation * | getGraphOperation () const |
| TF_Output * | getTrainableVars () |
| TF_Output * | getPartialDerivatives () |
| vector< const char * > & | getAssignationsInitNames () |
| vector< const char * > & | getAssignationsBestValuesNames () |
| vector< const char * > & | getAssignationsInitAdagradNames () |
| vector< const char * > & | getAssignationsInitAdadeltaGradientNames () |
| vector< const char * > & | getAssignationsInitAdadeltaUpdateNames () |
| vector< const char * > & | getAssignationsInitAdamFirstMomentNames () |
| vector< const char * > & | getAssignationsInitAdamSecondMomentNames () |
| vector< const char * > & | getVarNames () |
| vector< const char * > & | getVarBestValueNames () |
| vector< const char * > & | getVarAdagradValueNames () |
| vector< const char * > & | getVarAdadeltaGradientValueNames () |
| vector< const char * > & | getVarAdadeltaUpdateValueNames () |
| vector< const char * > & | getVarAdamFirstMomentValueNames () |
| vector< const char * > & | getVarAdamSecondMomentValueNames () |
| vector< const char * > & | getUpdateNames () |
| void | setWeightsLoadedFromModel (float **weightsLoadedFromModelUpdate) |
| void | setBiasesLoadedFromModel (float **biasesLoadedFromModelUpdate) |
| void | allocatePartialDerivatives (int nbOperations) |
| void | allocateAndInitializeTrainableVars (int nbOperations) |
| void | allocateAndInitializeAccumulators (int nbOperations) |
| void | allocateAndInitializeGradientAccumulators (int nbOperations) |
| void | allocateAndInitializeUpdateAccumulators (int nbOperations) |
| void | allocateAndInitializeMFirstMomentEstimateOutputs (int nbOperations) |
| void | allocateAndInitializeVSecondMomentEstimateOutputs (int nbOperations) |
| void | createVariableInGraph (const int64_t *dims, int num_dims, float *data, int num_data, char *name) |
| void | createConstantVariableAndAssignOperation (const char *namePrefix, const char *variablePrefix, const char *assignPrefix, const char *name, int numDims, const int64_t *dims, int numData, std::vector< const char * > &valueNames, std::vector< const char * > &assignNames, float *constantValue) |
| TF_Operation * | createOperationFromTwoOperations (TF_Operation *a, TF_Operation *b, const char *operationString, const char *operationName) |
| TF_Operation * | createOperationFromSingleOperation (TF_Operation *operation, const char *operationString, const char *operationName) |
| TF_Operation * | createConstOperation (TF_Tensor *tensor, char *name, TF_DataType dataType) |
| TF_Operation * | createVariableV2Operation (const int64_t *dims, int numDims, const char *name, TF_DataType dataType) |
| TF_Operation * | createMatriceMultiplicationOperation (TF_Operation *a, TF_Operation *b) |
| TF_Operation * | createAdditionOperation (TF_Operation *a, TF_Operation *b) |
| TF_Operation * | createActivationFunctionOperation (TF_Operation *input_op, CscActivationFunction activFuncName, int nbActivationFunctionOperation) |
| TF_Operation * | createPlaceHolderOperation (int numFeatures, const char *name) |
| TF_Operation * | createDenseLayerOperation (TF_Operation *input, const char *weightVarName, const char *biasVarName, CscActivationFunction activFuncName, int denseLayerId) |
| TF_Operation * | createInputLayerOperation (int numFeatures) |
| TF_Operation * | createDenseLayer (int hiddenLayerId, int nbNeuronsPreviousLayer, int nbNeuronsLayer, TF_Operation *previousLayer, CscActivationFunction fctActivationName, CscInitializationWeightsStrategy initilizationStrategy, CscInitializationBiasStrategy initializationBiasStrategy) |
| TF_Operation * | createOutputLayerOperation (int nbNeuronsPreviousLayer, TF_Operation *previousLayer, CscActivationFunction fctActivationName, CscLossFunction lossFunction, CscInitializationWeightsStrategy initializationStrategy, CscInitializationBiasStrategy initializationBiasStrategy, bool withCostFunction) |
| TF_Operation * | createTargetPlaceHoldersOperation () |
| void | createNeuralNetwork (CscActivationFunction hiddenLayersFunctionActivation, CscActivationFunction outputLayerFunctionActivation, CscLossFunction lossFunction, CscInitializationWeightsStrategy initilizationStrategy, CscInitializationBiasStrategy initializationBiasStrategy, bool withCostFunction) |
| Constructs the neural network by setting up the input layer, hidden layers, and the output layer using the provided activation functions, weight and bias initialization strategies, and loss function. More... | |
| TF_Operation * | createCostFunctionOperation (TF_Operation *predictions, CscLossFunction lossFunction) |
| TF_Operation * | createMeanSquaredErrorCostFunctionOperation (TF_Operation *predictions) |
| TF_Operation * | createMeanAbsoluteErrorCostFunctionOperation (TF_Operation *predictions) |
| TF_Operation * | createUpdateOperation (CscOptimizer optimizer, int nthVariable) |
| TF_Operation * | createGradientDescentUpdateOperation (TF_Output variable, TF_Output gradient) |
| TF_Operation * | createAdagradUpdateOperation (TF_Output variable, TF_Output gradient, TF_Output accumulation) |
| TF_Operation * | createAdadeltaUpdateOperation (TF_Output variable, TF_Output gradient, TF_Output accumGrad, TF_Output accumUpdate) |
| TF_Operation * | createAdamUpdateOperation (TF_Output variable, TF_Output gradient, TF_Output mFirstMomentEstimate, TF_Output vSecondMomentEstimate) |
| void | createAllUpdtateOperations (CscOptimizer optimizer) |
Static Public Member Functions | |
| static int | printTensorShapeOfOperationAndReturnNumberNeurons (TF_Graph *graph, const char *operationName) |
| conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::CscNeuralNetworkBuilderTensorFlow | ( | CscNeuralNetwork::TrainingHyperparameters * | trainingHypeparametersInit, |
| CscNeuralNetwork::NeuralNetworkHyperparameters * | nnHyperparametersInit, | ||
| float ** | weightsLoadedFromModelInit = nullptr, |
||
| float ** | biasesLoadedFromModelInit = nullptr |
||
| ) |
|
virtual |
| void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::allocateAndInitializeAccumulators | ( | int | nbOperations | ) |
| void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::allocateAndInitializeGradientAccumulators | ( | int | nbOperations | ) |
| void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::allocateAndInitializeMFirstMomentEstimateOutputs | ( | int | nbOperations | ) |
| void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::allocateAndInitializeTrainableVars | ( | int | nbOperations | ) |
| void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::allocateAndInitializeUpdateAccumulators | ( | int | nbOperations | ) |
| void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::allocateAndInitializeVSecondMomentEstimateOutputs | ( | int | nbOperations | ) |
| void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::allocatePartialDerivatives | ( | int | nbOperations | ) |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createActivationFunctionOperation | ( | TF_Operation * | input_op, |
| CscActivationFunction | activFuncName, | ||
| int | nbActivationFunctionOperation | ||
| ) |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createAdadeltaUpdateOperation | ( | TF_Output | variable, |
| TF_Output | gradient, | ||
| TF_Output | accumGrad, | ||
| TF_Output | accumUpdate | ||
| ) |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createAdagradUpdateOperation | ( | TF_Output | variable, |
| TF_Output | gradient, | ||
| TF_Output | accumulation | ||
| ) |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createAdamUpdateOperation | ( | TF_Output | variable, |
| TF_Output | gradient, | ||
| TF_Output | mFirstMomentEstimate, | ||
| TF_Output | vSecondMomentEstimate | ||
| ) |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createAdditionOperation | ( | TF_Operation * | a, |
| TF_Operation * | b | ||
| ) |
| void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createAllUpdtateOperations | ( | CscOptimizer | optimizer | ) |
| void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createConstantVariableAndAssignOperation | ( | const char * | namePrefix, |
| const char * | variablePrefix, | ||
| const char * | assignPrefix, | ||
| const char * | name, | ||
| int | numDims, | ||
| const int64_t * | dims, | ||
| int | numData, | ||
| std::vector< const char * > & | valueNames, | ||
| std::vector< const char * > & | assignNames, | ||
| float * | constantValue | ||
| ) |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createConstOperation | ( | TF_Tensor * | tensor, |
| char * | name, | ||
| TF_DataType | dataType | ||
| ) |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createCostFunctionOperation | ( | TF_Operation * | predictions, |
| CscLossFunction | lossFunction | ||
| ) |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createDenseLayer | ( | int | hiddenLayerId, |
| int | nbNeuronsPreviousLayer, | ||
| int | nbNeuronsLayer, | ||
| TF_Operation * | previousLayer, | ||
| CscActivationFunction | fctActivationName, | ||
| CscInitializationWeightsStrategy | initilizationStrategy, | ||
| CscInitializationBiasStrategy | initializationBiasStrategy | ||
| ) |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createDenseLayerOperation | ( | TF_Operation * | input, |
| const char * | weightVarName, | ||
| const char * | biasVarName, | ||
| CscActivationFunction | activFuncName, | ||
| int | denseLayerId | ||
| ) |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createGradientDescentUpdateOperation | ( | TF_Output | variable, |
| TF_Output | gradient | ||
| ) |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createInputLayerOperation | ( | int | numFeatures | ) |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createMatriceMultiplicationOperation | ( | TF_Operation * | a, |
| TF_Operation * | b | ||
| ) |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createMeanAbsoluteErrorCostFunctionOperation | ( | TF_Operation * | predictions | ) |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createMeanSquaredErrorCostFunctionOperation | ( | TF_Operation * | predictions | ) |
| void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createNeuralNetwork | ( | CscActivationFunction | hiddenLayersFunctionActivation, |
| CscActivationFunction | outputLayerFunctionActivation, | ||
| CscLossFunction | lossFunction, | ||
| CscInitializationWeightsStrategy | initilizationStrategy, | ||
| CscInitializationBiasStrategy | initializationBiasStrategy, | ||
| bool | withCostFunction | ||
| ) |
Constructs the neural network by setting up the input layer, hidden layers, and the output layer using the provided activation functions, weight and bias initialization strategies, and loss function.
This method initializes the entire architecture of a neural network based on the configuration specified through the CscNeuralNetworkShape and the given parameters for activation functions, initialization strategies, and loss function. It ensures that the number of hidden layers matches the number of neurons per hidden layer defined in the shape. It sets up an input layer, multiple hidden layers, and an output layer. Additionally, it also creates placeholders for target values necessary for training.
| hiddenLayersFunctionActivation | The activation function to be used for all hidden layers. |
| outputLayerFunctionActivation | The activation function to be used for the output layer. |
| lossFunction | The loss function to be used in the output layer for training. |
| initializationWeightsStrategy | The strategy for initializing weights in all layers. |
| initializationBiasStrategy | The strategy for initializing biases in all layers. |
| std::runtime_error | If the precondition is not met (e.g., mismatch in the number of hidden layers and neurons per layer). |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createOperationFromSingleOperation | ( | TF_Operation * | operation, |
| const char * | operationString, | ||
| const char * | operationName | ||
| ) |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createOperationFromTwoOperations | ( | TF_Operation * | a, |
| TF_Operation * | b, | ||
| const char * | operationString, | ||
| const char * | operationName | ||
| ) |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createOutputLayerOperation | ( | int | nbNeuronsPreviousLayer, |
| TF_Operation * | previousLayer, | ||
| CscActivationFunction | fctActivationName, | ||
| CscLossFunction | lossFunction, | ||
| CscInitializationWeightsStrategy | initializationStrategy, | ||
| CscInitializationBiasStrategy | initializationBiasStrategy, | ||
| bool | withCostFunction | ||
| ) |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createPlaceHolderOperation | ( | int | numFeatures, |
| const char * | name | ||
| ) |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createTargetPlaceHoldersOperation | ( | ) |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createUpdateOperation | ( | CscOptimizer | optimizer, |
| int | nthVariable | ||
| ) |
| void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createVariableInGraph | ( | const int64_t * | dims, |
| int | num_dims, | ||
| float * | data, | ||
| int | num_data, | ||
| char * | name | ||
| ) |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createVariableV2Operation | ( | const int64_t * | dims, |
| int | numDims, | ||
| const char * | name, | ||
| TF_DataType | dataType | ||
| ) |
| vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getAssignationsBestValuesNames | ( | ) |
| vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getAssignationsInitAdadeltaGradientNames | ( | ) |
| vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getAssignationsInitAdadeltaUpdateNames | ( | ) |
| vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getAssignationsInitAdagradNames | ( | ) |
| vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getAssignationsInitAdamFirstMomentNames | ( | ) |
| vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getAssignationsInitAdamSecondMomentNames | ( | ) |
| vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getAssignationsInitNames | ( | ) |
| TF_Graph * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getGraph | ( | ) | const |
| TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getGraphOperation | ( | ) | const |
| TF_Output * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getPartialDerivatives | ( | ) |
| TF_Status * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getStatus | ( | ) | const |
| TF_Output * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getTrainableVars | ( | ) |
| vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getUpdateNames | ( | ) |
| vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getVarAdadeltaGradientValueNames | ( | ) |
| vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getVarAdadeltaUpdateValueNames | ( | ) |
| vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getVarAdagradValueNames | ( | ) |
| vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getVarAdamFirstMomentValueNames | ( | ) |
| vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getVarAdamSecondMomentValueNames | ( | ) |
| vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getVarBestValueNames | ( | ) |
| vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getVarNames | ( | ) |
|
static |
| void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::setBiasesLoadedFromModel | ( | float ** | biasesLoadedFromModelUpdate | ) |
| void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::setWeightsLoadedFromModel | ( | float ** | weightsLoadedFromModelUpdate | ) |