Blob Blame Raw

#include <ctime>
#include <cstdlib>

#include "nntrain.inc.cpp"


int main() {
  srand(time(NULL));

  printf("load training data\n");
  Trainer t;
  if (!t.loadSymbolMap("data/symbols-data.bin", 784, 10)) return 1;

  printf("create neural network\n");
  double tr = 0.1;
  Layer l(nullptr, 784, tr);
  new LayerPlain(l, 256, tr);
  new LayerPlain(l, 128, tr);
  new LayerPlain(l, 64, tr);
  new LayerPlain(l, 64, tr);
  new LayerPlain(l, 10, tr);

  printf("try load previously saved network\n");
  l.load("data/weights.bin");

  printf("train\n");
  double k = pow(0.5, 0.125);
  for(double q = k; q > 0.05; q *= k)
    t.train(l, 10, 100, q);

  printf("save neural network weights\n");
  if (!l.save("data/output/weights.bin")) return 1;

  return 0;
}