15 using namespace shark;
19 std::vector<RealVector> data(320,RealVector(16));
20 std::vector<unsigned int> label(320);
22 for(std::size_t k = 0; k != 10; ++k){
23 for(
size_t x=0; x != 16; x++) {
24 for(
size_t j=0; j != 4; j++) {
25 bool val = (x & (1<<j)) > 0;
31 for(
int i=0; i != 4; i++) {
32 subrange(data[x+k*16],i*4 ,i*4 + 4) = line;
34 for(
int i=0; i != 4; i++) {
35 for(
int l=0; l<4; l++) {
36 data[x+k*16+160](l*4 + i) = line(l);
40 label[x+k*16+160] = 0;
49 std::size_t numHidden,
50 std::size_t iterations,
51 double regularisation,
74 unsigned int numIterations = iterations;
75 optimizer.
init(estimator);
76 for(
unsigned int iteration = 0; iteration != numIterations; ++iteration) {
77 optimizer.
step(estimator);
88 std::size_t numHidden1,std::size_t numHidden2, std::size_t numOutputs,
89 double regularisation, std::size_t iterations,
double learningRate
92 std::cout<<
"training first layer"<<std::endl;
95 regularisation,iterations, learningRate
103 std::cout<<
"training second layer"<<std::endl;
105 intermediateData,numHidden2,
106 regularisation,iterations, learningRate
121 std::size_t numHidden1 = 8;
122 std::size_t numHidden2 = 8;
124 double unsupRegularisation = 0.001;
125 double unsupLearningRate = 0.1;
126 std::size_t unsupIterations = 10000;
128 double regularisation = 0.0001;
129 std::size_t iterations = 200;
139 unsupRegularisation, unsupIterations, unsupLearningRate
149 std::cout<<
"training supervised model"<<std::endl;
151 optimizer.
init(error);
152 for(std::size_t i = 0; i != iterations; ++i){
153 optimizer.
step(error);
161 cout <<
"classification error,train: " << loss01.
eval(data.
labels(), predictionTrain) << endl;
164 cout <<
"classification error,test: " << loss01.
eval(test.
labels(), prediction) << endl;