Conscience Core
Public Member Functions | Static Public Member Functions | List of all members
conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow Class Reference

#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)
 

Constructor & Destructor Documentation

◆ CscNeuralNetworkBuilderTensorFlow()

conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::CscNeuralNetworkBuilderTensorFlow ( CscNeuralNetwork::TrainingHyperparameters trainingHypeparametersInit,
CscNeuralNetwork::NeuralNetworkHyperparameters nnHyperparametersInit,
float **  weightsLoadedFromModelInit = nullptr,
float **  biasesLoadedFromModelInit = nullptr 
)

◆ ~CscNeuralNetworkBuilderTensorFlow()

conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::~CscNeuralNetworkBuilderTensorFlow ( )
virtual

Member Function Documentation

◆ allocateAndInitializeAccumulators()

void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::allocateAndInitializeAccumulators ( int  nbOperations)

◆ allocateAndInitializeGradientAccumulators()

void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::allocateAndInitializeGradientAccumulators ( int  nbOperations)

◆ allocateAndInitializeMFirstMomentEstimateOutputs()

void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::allocateAndInitializeMFirstMomentEstimateOutputs ( int  nbOperations)

◆ allocateAndInitializeTrainableVars()

void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::allocateAndInitializeTrainableVars ( int  nbOperations)

◆ allocateAndInitializeUpdateAccumulators()

void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::allocateAndInitializeUpdateAccumulators ( int  nbOperations)

◆ allocateAndInitializeVSecondMomentEstimateOutputs()

void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::allocateAndInitializeVSecondMomentEstimateOutputs ( int  nbOperations)

◆ allocatePartialDerivatives()

void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::allocatePartialDerivatives ( int  nbOperations)

◆ createActivationFunctionOperation()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createActivationFunctionOperation ( TF_Operation *  input_op,
CscActivationFunction  activFuncName,
int  nbActivationFunctionOperation 
)

◆ createAdadeltaUpdateOperation()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createAdadeltaUpdateOperation ( TF_Output  variable,
TF_Output  gradient,
TF_Output  accumGrad,
TF_Output  accumUpdate 
)

◆ createAdagradUpdateOperation()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createAdagradUpdateOperation ( TF_Output  variable,
TF_Output  gradient,
TF_Output  accumulation 
)

◆ createAdamUpdateOperation()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createAdamUpdateOperation ( TF_Output  variable,
TF_Output  gradient,
TF_Output  mFirstMomentEstimate,
TF_Output  vSecondMomentEstimate 
)

◆ createAdditionOperation()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createAdditionOperation ( TF_Operation *  a,
TF_Operation *  b 
)

◆ createAllUpdtateOperations()

void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createAllUpdtateOperations ( CscOptimizer  optimizer)

◆ createConstantVariableAndAssignOperation()

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 
)

◆ createConstOperation()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createConstOperation ( TF_Tensor *  tensor,
char *  name,
TF_DataType  dataType 
)

◆ createCostFunctionOperation()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createCostFunctionOperation ( TF_Operation *  predictions,
CscLossFunction  lossFunction 
)

◆ createDenseLayer()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createDenseLayer ( int  hiddenLayerId,
int  nbNeuronsPreviousLayer,
int  nbNeuronsLayer,
TF_Operation *  previousLayer,
CscActivationFunction  fctActivationName,
CscInitializationWeightsStrategy  initilizationStrategy,
CscInitializationBiasStrategy  initializationBiasStrategy 
)

◆ createDenseLayerOperation()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createDenseLayerOperation ( TF_Operation *  input,
const char *  weightVarName,
const char *  biasVarName,
CscActivationFunction  activFuncName,
int  denseLayerId 
)

◆ createGradientDescentUpdateOperation()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createGradientDescentUpdateOperation ( TF_Output  variable,
TF_Output  gradient 
)

◆ createInputLayerOperation()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createInputLayerOperation ( int  numFeatures)

◆ createMatriceMultiplicationOperation()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createMatriceMultiplicationOperation ( TF_Operation *  a,
TF_Operation *  b 
)

◆ createMeanAbsoluteErrorCostFunctionOperation()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createMeanAbsoluteErrorCostFunctionOperation ( TF_Operation *  predictions)

◆ createMeanSquaredErrorCostFunctionOperation()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createMeanSquaredErrorCostFunctionOperation ( TF_Operation *  predictions)

◆ createNeuralNetwork()

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.

Parameters
hiddenLayersFunctionActivationThe activation function to be used for all hidden layers.
outputLayerFunctionActivationThe activation function to be used for the output layer.
lossFunctionThe loss function to be used in the output layer for training.
initializationWeightsStrategyThe strategy for initializing weights in all layers.
initializationBiasStrategyThe strategy for initializing biases in all layers.
Exceptions
std::runtime_errorIf the precondition is not met (e.g., mismatch in the number of hidden layers and neurons per layer).

◆ createOperationFromSingleOperation()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createOperationFromSingleOperation ( TF_Operation *  operation,
const char *  operationString,
const char *  operationName 
)

◆ createOperationFromTwoOperations()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createOperationFromTwoOperations ( TF_Operation *  a,
TF_Operation *  b,
const char *  operationString,
const char *  operationName 
)

◆ createOutputLayerOperation()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createOutputLayerOperation ( int  nbNeuronsPreviousLayer,
TF_Operation *  previousLayer,
CscActivationFunction  fctActivationName,
CscLossFunction  lossFunction,
CscInitializationWeightsStrategy  initializationStrategy,
CscInitializationBiasStrategy  initializationBiasStrategy,
bool  withCostFunction 
)

◆ createPlaceHolderOperation()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createPlaceHolderOperation ( int  numFeatures,
const char *  name 
)

◆ createTargetPlaceHoldersOperation()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createTargetPlaceHoldersOperation ( )

◆ createUpdateOperation()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createUpdateOperation ( CscOptimizer  optimizer,
int  nthVariable 
)

◆ createVariableInGraph()

void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createVariableInGraph ( const int64_t *  dims,
int  num_dims,
float *  data,
int  num_data,
char *  name 
)

◆ createVariableV2Operation()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::createVariableV2Operation ( const int64_t *  dims,
int  numDims,
const char *  name,
TF_DataType  dataType 
)

◆ getAssignationsBestValuesNames()

vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getAssignationsBestValuesNames ( )

◆ getAssignationsInitAdadeltaGradientNames()

vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getAssignationsInitAdadeltaGradientNames ( )

◆ getAssignationsInitAdadeltaUpdateNames()

vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getAssignationsInitAdadeltaUpdateNames ( )

◆ getAssignationsInitAdagradNames()

vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getAssignationsInitAdagradNames ( )

◆ getAssignationsInitAdamFirstMomentNames()

vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getAssignationsInitAdamFirstMomentNames ( )

◆ getAssignationsInitAdamSecondMomentNames()

vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getAssignationsInitAdamSecondMomentNames ( )

◆ getAssignationsInitNames()

vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getAssignationsInitNames ( )

◆ getGraph()

TF_Graph * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getGraph ( ) const

◆ getGraphOperation()

TF_Operation * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getGraphOperation ( ) const

◆ getPartialDerivatives()

TF_Output * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getPartialDerivatives ( )

◆ getStatus()

TF_Status * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getStatus ( ) const

◆ getTrainableVars()

TF_Output * conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getTrainableVars ( )

◆ getUpdateNames()

vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getUpdateNames ( )

◆ getVarAdadeltaGradientValueNames()

vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getVarAdadeltaGradientValueNames ( )

◆ getVarAdadeltaUpdateValueNames()

vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getVarAdadeltaUpdateValueNames ( )

◆ getVarAdagradValueNames()

vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getVarAdagradValueNames ( )

◆ getVarAdamFirstMomentValueNames()

vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getVarAdamFirstMomentValueNames ( )

◆ getVarAdamSecondMomentValueNames()

vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getVarAdamSecondMomentValueNames ( )

◆ getVarBestValueNames()

vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getVarBestValueNames ( )

◆ getVarNames()

vector< const char * > & conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::getVarNames ( )

◆ printTensorShapeOfOperationAndReturnNumberNeurons()

int conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::printTensorShapeOfOperationAndReturnNumberNeurons ( TF_Graph *  graph,
const char *  operationName 
)
static

◆ setBiasesLoadedFromModel()

void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::setBiasesLoadedFromModel ( float **  biasesLoadedFromModelUpdate)

◆ setWeightsLoadedFromModel()

void conscience_core::ai::nn::CscNeuralNetworkBuilderTensorFlow::setWeightsLoadedFromModel ( float **  weightsLoadedFromModelUpdate)

The documentation for this class was generated from the following files: