index 2401618cbb5438f633da458b9359a52a5767bc6f..919ede8a7a982a747d13a8c5e3786041dabe256e 100644 (file)
*\r
******************************************************************************/\r
\r
-#define MODEL_PATH "../../database/test/cnn/databaseTestCNNSimpleWrite1.m"\r
-#define WRITEBACK_MODEL_PATH "../../database/test/cnn/databaseTestCNNSimpleWrite2.m"\r
+#define MODEL_PATH "src/database/test/cnn/databaseTestCNNSimpleWrite1.m"\r
+#define WRITEBACK_MODEL_PATH "src/database/test/cnn/databaseTestCNNSimpleWrite2.m"\r
#define IMAGE_ROW 28\r
#define IMAGE_COL 28\r
#define IMAGE_CHANNEL 3\r
int testCNNSimpleIO()\r
{\r
int err;\r
- long mem;\r
+ size_t mem1;\r
+ size_t mem2;\r
+ size_t mem3;\r
\r
err = 0;\r
- printf("[Test] CNN Simple IO");\r
- timlConvNeuralNetwork *cnn = timlCNNCreateConvNeuralNetwork(timlCNNTrainingParamsDefault(), 0);\r
+ printf("[Test] CNN Simple IO\n");\r
+ timlConvNeuralNetwork *cnn = timlCNNCreateConvNeuralNetwork(timlCNNTrainingParamsDefault());\r
+ cnn->params.allocatorLevel = Util_AllocatorLevel2;\r
timlCNNAddInputLayer(cnn, IMAGE_ROW, IMAGE_COL, IMAGE_CHANNEL, timlCNNInputParamsDefault()); // input layer\r
timlCNNAddConvLayer(cnn, 5, 5, 1, 1, 6, timlCNNConvParamsDefault()); // conv layer\r
timlCNNAddNonlinearLayer(cnn, Util_Sigmoid); // sigmoid layer\r
timlCNNAddDropoutLayer(cnn, 0.5); // dropout layer\r
timlCNNAddNormLayer(cnn, timlCNNNormParamsDefault()); // norm layer\r
timlCNNAddLinearLayer(cnn, 10, timlCNNLinearParamsDefault()); // linear layer\r
- timlCNNAddNonlinearLayer(cnn, Util_Softmax); // softmax layer\r
+ timlCNNAddSoftmaxCostLayer(cnn); // softmax cost layer\r
timlCNNInitialize(cnn);\r
- mem = timlCNNMemory(cnn);\r
- printf("CNN memory = %.10f MB.\n", (float)mem/1024.0/1024.0);\r
+ timlCNNReset(cnn);\r
+\r
+ timlCNNPrint(cnn);\r
+ mem1 = cnn->forwardMemory + cnn->backwardMemory + cnn->fixedMemory + cnn->paramsMemory;\r
+ mem2 = cnn->forwardMemory + cnn->fixedMemory + cnn->paramsMemory;\r
+ mem3 = cnn->memPoolSize + cnn->fixedMemory + cnn->paramsMemory;\r
+ printf("CNN level 1 memory size = %d byte.\n", mem1);\r
+ printf("CNN level 2 memory size = %d byte.\n", mem2);\r
+ printf("CNN level 3 memory size = %d byte.\n", mem3);\r
+ printf("CNN forward memory size = %d byte.\n", cnn->forwardMemory);\r
+ printf("CNN memory pool size = %d byte.\n", cnn->memPoolSize);\r
+ printf("CNN params memory size = %d byte.\n", cnn->paramsMemory);\r
\r
// write to file\r
printf("1. Write to model\n");\r
\r
// read from file\r
printf("2. Read from model\n");\r
- timlConvNeuralNetwork *cnn2 = timlCNNReadFromFile(MODEL_PATH, 0);\r
+ timlConvNeuralNetwork *cnn2 = timlCNNReadFromFile(MODEL_PATH);\r
+ timlCNNInitialize(cnn2);\r
+ timlCNNLoadParamsFromFile(cnn2, cnn2->paramsFileName);\r
+ timlCNNLoadStatesFromFile(cnn2, cnn2->statesFileName);\r
if (cnn2 == NULL) {\r
printf("failed\n");\r
}\r