Joseph Redmon
2014-07-17 b32a287e38f4c6a41828f18b4669dec9f3af4943
src/cnn.c
@@ -48,11 +48,10 @@
   image edge = make_image((dog.h-size)/stride+1, (dog.w-size)/stride+1, n);
   int i;
   clock_t start = clock(), end;
   for(i = 0; i < 1000; ++i){
      im2col_cpu(dog.data,  1, dog.c,  dog.h,  dog.w,  size,  stride, 0, matrix);
      im2col_cpu(dog.data, dog.c,  dog.h,  dog.w,  size,  stride, 0, matrix);
      gemm(0,0,n,mw,mh,1,filters,mh,matrix,mw,1,edge.data,mw);
   }
   end = clock();
@@ -300,7 +299,6 @@
void test_nist()
{
   srand(444444);
   srand(222222);
   network net = parse_network_cfg("cfg/nist.cfg");
   data train = load_categorical_data_csv("data/mnist/mnist_train.csv", 0, 10);
@@ -309,18 +307,18 @@
   normalize_data_rows(test);
   //randomize_data(train);
   int count = 0;
   float lr = .000075;
   float lr = .0001;
   float momentum = .9;
   float decay = 0.0001;
   decay = 0;
   //clock_t start = clock(), end;
   int iters = 100;
   int iters = 1000;
   while(++count <= 10){
      clock_t start = clock(), end;
      float loss = train_network_sgd(net, train, iters, lr, momentum, decay);
      end = clock();
      float test_acc = network_accuracy(net, test);
      printf("%d: %f %f, Time: %lf seconds, LR: %f, Momentum: %f, Decay: %f\n", count, loss, test_acc,(float)(end-start)/CLOCKS_PER_SEC, lr, momentum, decay);
        //float test_acc = 0;
      printf("%d: Loss: %f, Test Acc: %f, Time: %lf seconds, LR: %f, Momentum: %f, Decay: %f\n", count, loss, test_acc,(float)(end-start)/CLOCKS_PER_SEC, lr, momentum, decay);
      //printf("%5d Training Loss: %lf, Params: %f %f %f, ",count*1000, loss, lr, momentum, decay);
      //end = clock();
@@ -435,7 +433,7 @@
   float *matrix = calloc(msize, sizeof(float));
   int i;
   for(i = 0; i < 1000; ++i){
      im2col_cpu(test.data, 1, c,  h,  w,  size,  stride, 0, matrix);
      im2col_cpu(test.data,  c,  h,  w,  size,  stride, 0, matrix);
      //image render = float_to_image(mh, mw, mc, matrix);
   }
}
@@ -657,9 +655,8 @@
   cvWaitKey(0);
}
void features_VOC_image(char *image_file, char *image_dir, char *out_dir, int flip)
void features_VOC_image(char *image_file, char *image_dir, char *out_dir, int flip, int interval)
{
   int interval = 4;
   int i,j;
   network net = parse_network_cfg("cfg/voc_imagenet.cfg");
   char image_path[1024];
@@ -787,6 +784,9 @@
   //tune_VOC();
   //features_VOC_image(argv[1], argv[2], argv[3], 0);
   //features_VOC_image(argv[1], argv[2], argv[3], 1);
   //train_VOC();
   //features_VOC_image(argv[1], argv[2], argv[3], 0, 4);
   //features_VOC_image(argv[1], argv[2], argv[3], 1, 4);
   //features_VOC_image_size(argv[1], atoi(argv[2]), atoi(argv[3]));
   //visualize_imagenet_features("data/assira/train.list");
   //visualize_imagenet_topk("data/VOC2012.list");