|
|
e865c9 |
|
|
|
e865c9 |
|
|
|
e865c9 |
#include <ctime></ctime>
|
|
|
e865c9 |
|
|
|
e865c9 |
#include "layer.all.inc.cpp"
|
|
|
e865c9 |
#include "layer.all.test.inc.cpp"
|
|
|
e865c9 |
#include "train.digit.inc.cpp"
|
|
|
e865c9 |
|
|
|
e865c9 |
|
|
|
e865c9 |
bool runTests() {
|
|
|
e865c9 |
if (!AllTest::test()) return false;
|
|
|
e865c9 |
return printf("success\n"), true;
|
|
|
e865c9 |
}
|
|
|
e865c9 |
|
|
|
e865c9 |
|
|
|
e865c9 |
int main() {
|
|
|
e865c9 |
srand(time(NULL));
|
|
|
e865c9 |
|
|
|
8e5348 |
//return !runTests();
|
|
|
e865c9 |
|
|
|
8e5348 |
//#define FILENAME "data/output/weights-digit.bin"
|
|
|
8e5348 |
#define FILENAME "data/output/weights-digit-conv.bin"
|
|
|
e865c9 |
|
|
|
e865c9 |
printf("create neural network\n");
|
|
|
8e5348 |
//Layer l( nullptr, Layout(28, 28) );
|
|
|
8e5348 |
//(new LayerSimple<funcsigmoidexp>( l, Layout(256) ))->filename = FILENAME "1";</funcsigmoidexp>
|
|
|
8e5348 |
//(new LayerSimple<funcsigmoidexp>( l, Layout(64) ))->filename = FILENAME "2";</funcsigmoidexp>
|
|
|
8e5348 |
//(new LayerSimple<funcsigmoidexp>( l, Layout(10) ))->filename = FILENAME "3";</funcsigmoidexp>
|
|
|
8e5348 |
|
|
|
8e5348 |
Layer l(nullptr, Layout(28, 28));
|
|
|
8e5348 |
(new LayerConvShared<funcsigmoidexp>(l, Layout(11, 11, 16), Kernel(6, 2, 0)))->filename = FILENAME "1";</funcsigmoidexp>
|
|
|
8e5348 |
(new LayerSimple<funcsigmoidexp>(l, Layout(64)))->filename = FILENAME "2";</funcsigmoidexp>
|
|
|
8e5348 |
(new LayerSimple<funcsigmoidexp>(l, Layout(10)))->filename = FILENAME "3";</funcsigmoidexp>
|
|
|
e865c9 |
|
|
|
e865c9 |
l.sumStat().print();
|
|
|
e865c9 |
|
|
|
e865c9 |
printf("load training data\n");
|
|
|
e865c9 |
TrainerDigit t;
|
|
|
8e5348 |
if (!t.loadSymbolMap("data/symbols-data.bin")) return 1; // 28x28
|
|
|
e865c9 |
|
|
|
e865c9 |
//printf("try load previously saved network\n"); l.load();
|
|
|
e865c9 |
|
|
|
e865c9 |
printf("train\n");
|
|
|
8e5348 |
//t.configure(l, 0.5, 8, 70000, 0, 0, 0.00001).run();
|
|
|
8e5348 |
t.configure(l, 0.1, 8, 70000, 0, 0, 0.00001).run();
|
|
|
e865c9 |
|
|
|
e865c9 |
return 0;
|
|
|
e865c9 |
}
|
|
|
e865c9 |
|