index f680fd01c4b9adab060f0c8376d5c7bff1ec0bff..d99b137f8a04f3d4e05654a37804442993d4445c 100644 (file)
*
******************************************************************************/
-#define MODEL_PATH "../../database/test/cnn/databaseTestCNNSimpleShare1.m"
-#define SHARED_MODEL_PATH "../../database/test/cnn/databaseTestCNNSimpleShare2.m"
+#define MODEL_PATH "src/database/test/cnn/databaseTestCNNSimpleShare1.m"
+#define SHARED_MODEL_PATH "src/database/test/cnn/databaseTestCNNSimpleShare2.m"
#define IMAGE_ROW 28
#define IMAGE_COL 28
#define IMAGE_CHANNEL 1
#define INT_FORMAT "%10d"
#define FLOAT_FORMAT "%12.4f"
#define CNN_NAME "cnn"
-#define PARAMS_LEVEL Util_ParamsLevel2
+#define PARAMS_LEVEL Util_ParamsLevel3
/******************************************************************************/
{
timlConvNeuralNetwork *cnn;
timlConvNeuralNetwork *cnnShare;
- long mem;
+ size_t mem1;
+ size_t mem2;
+ size_t mem3;
printf("[Test] CNN simple share\n");
printf("1. Build the CNN\n");
- cnn = timlCNNCreateConvNeuralNetwork(timlCNNTrainingParamsDefault(), 0);
+ cnn = timlCNNCreateConvNeuralNetwork(timlCNNTrainingParamsDefault());
timlCNNAddInputLayer(cnn, IMAGE_ROW, IMAGE_COL, IMAGE_CHANNEL, timlCNNInputParamsDefault()); // input layer
timlCNNAddConvLayer(cnn, 5, 5, 1, 1, 6, timlCNNConvParamsDefault()); // conv layer
timlCNNAddNonlinearLayer(cnn, Util_Sigmoid); // sigmoid layer
timlCNNAddDropoutLayer(cnn, 0.5); // dropout layer
timlCNNAddNormLayer(cnn, timlCNNNormParamsDefault()); // norm layer
timlCNNAddLinearLayer(cnn, 10, timlCNNLinearParamsDefault()); // linear layer
- timlCNNAddNonlinearLayer(cnn, Util_Softmax); // softmax layer
+ timlCNNAddSoftmaxCostLayer(cnn); // softmax cost layer
timlCNNInitialize(cnn);
- mem = timlCNNMemory(cnn);
- printf("CNN memory = %.10f MB.\n", (float)mem/1024.0/1024.0);
+ timlCNNReset(cnn);
+ timlCNNPrint(cnn);
+ mem1 = cnn->forwardMemory + cnn->backwardMemory + cnn->fixedMemory + cnn->paramsMemory;
+ mem2 = cnn->forwardMemory + cnn->fixedMemory + cnn->paramsMemory;
+ mem3 = cnn->memPoolSize + cnn->fixedMemory + cnn->paramsMemory;
+ printf("CNN level 1 memory size = %d byte.\n", mem1);
+ printf("CNN level 2 memory size = %d byte.\n", mem2);
+ printf("CNN level 3 memory size = %d byte.\n", mem3);
+ printf("CNN forward memory size = %d byte.\n", cnn->forwardMemory);
+ printf("CNN memory pool size = %d byte.\n", cnn->memPoolSize);
+ printf("CNN params memory size = %d byte.\n", cnn->paramsMemory);
printf("2. Create shared CNN\n");
- cnnShare = timlCNNShareParams(cnn, 0);
- mem = timlCNNMemory(cnnShare);
- printf("CNN Share memory = %.10f MB.\n", (float)mem/1024.0/1024.0);
+ cnnShare = timlCNNShareParams(cnn);
+ timlCNNInitialize(cnnShare);
// write to model file
printf("3. Write to model file\n");