8 #ifndef CSCNEURALNETWORKTENSORFLOW_H_
9 #define CSCNEURALNETWORKTENSORFLOW_H_
14 #include "tensorflow/c/c_api.h"
32 vector<TF_Session *> getSessions();
53 ResultTraining trainNeuralNetwork(
const int nbEpochs,
const int nbMiniBatchs,
DataSet *trainingDataSet,
DataSet *validationDataSet,
const bool debugMode =
false)
override;
63 float testNeuralNetworkOnValidationDataSet(
DataSet *validationDataSet,
const bool nnNeverInitialized =
false);
89 vector<float> executeWithoutCostFunction(TF_Session *session,
float **inputs);
94 vector<TF_Session *> sessions;
115 float executeGraph(TF_Tensor *tensorInputs, TF_Tensor *tensorTargets, TF_Tensor *outputTensor, TF_Session *session);
116 float *executeGraphWithoutCostFunction(TF_Tensor *tensorInputs, TF_Tensor *outputTensor, TF_Session *session);
117 void configureGraphGradients(TF_Tensor *inputTensor, TF_Session *session);
118 void updateWeightsAndBias(TF_Session *session, TF_Tensor *tensorInputs, TF_Tensor *tensorTarget,
bool debugMode =
false);
120 float executeOnMiniBatches(TF_Session *session,
float ***inputs,
float ***targets,
const int epoch,
const int nbEpoch,
const int nbMiniBatchs,
const int dataPerMinibatch,
const bool isTraining);
123 void runAssignations(TF_Session *session,
const std::vector<const char *>& assignationsNames,
const char *statusCheckName);
124 void assignationInitValues(TF_Session *session);
125 void assignationAdagradInitValues(TF_Session *session);
126 void assignationAdadeltaInitValues(TF_Session *session);
127 void assignationAdamInitValues(TF_Session *session);
128 void assignationBestValues(TF_Session *session);
131 void runWithoutInputsAndOutputs(TF_Operation *operations,
int nbOperations, TF_Session *session);
134 void printTensor(TF_Tensor *tensor);
135 void fetchWeightsAndBiases(TF_Session *session, vector<const char *> varNames);
154 bool checkStatus(
const string methodName);
155 TF_Tensor *createTensorMatriceOrder2(
int nbLineMatrice,
int nbColumnMatrice,
float **values);
156 void storeAllWeightsAndBiasesInTensorArray(TF_Session *session, vector<const char *> weightsAndBiasesVariarblesNames, TF_Tensor **tensorArrayToStoreWeightsAndBiases);