Joseph Redmon
2014-05-09 cd8d53df21f3ad2810add2a8cff766c745f55a17
src/tests.c
@@ -52,7 +52,7 @@
   int i;
   clock_t start = clock(), end;
   for(i = 0; i < 1000; ++i){
      im2col_cpu(dog.data,  dog.c,  dog.h,  dog.w,  size,  stride, matrix);
      im2col_cpu(dog.data,  1, dog.c,  dog.h,  dog.w,  size,  stride, matrix);
      gemm(0,0,n,mw,mh,1,filters,mh,matrix,mw,1,edge.data,mw);
   }
   end = clock();
@@ -168,7 +168,7 @@
      float v = ((float)rand()/RAND_MAX);
      float truth = v*v;
      input[0] = v;
      forward_network(net, input);
      forward_network(net, input, 1);
      float *out = get_network_output(net);
      float *delta = get_network_delta(net);
      float err = pow((out[0]-truth),2.);
@@ -245,7 +245,7 @@
      normalize_data_rows(test);
      for(j = 0; j < test.X.rows; ++j){
         float *x = test.X.vals[j];
         forward_network(net, x);
         forward_network(net, x, 0);
         int class = get_predicted_class_network(net);
         fprintf(fp, "%d\n", class);
      }
@@ -302,9 +302,9 @@
{
   srand(444444);
   srand(888888);
   network net = parse_network_cfg("cfg/nist_basic.cfg");
   data train = load_categorical_data_csv("mnist/mnist_train.csv", 0, 10);
   data test = load_categorical_data_csv("mnist/mnist_test.csv",0,10);
   network net = parse_network_cfg("cfg/nist.cfg");
   data train = load_categorical_data_csv("data/mnist/mnist_train.csv", 0, 10);
   data test = load_categorical_data_csv("data/mnist/mnist_test.csv",0,10);
   normalize_data_rows(train);
   normalize_data_rows(test);
   //randomize_data(train);
@@ -317,21 +317,13 @@
   int batch = 10000;
   while(++count <= 10000){
      float loss = train_network_sgd(net, train, batch, lr, momentum, decay);
      printf("%5f %5f\n",(double)count*batch/train.X.rows, loss);
      float test_acc = network_accuracy(net, test);
      printf("%3d %5f %5f\n",count, loss, test_acc);
      //printf("%5d Training Loss: %lf, Params: %f %f %f, ",count*1000, loss, lr, momentum, decay);
      //end = clock();
      //printf("Time: %lf seconds\n", (float)(end-start)/CLOCKS_PER_SEC);
      //start=end;
      /*
         if(count%5 == 0){
         float train_acc = network_accuracy(net, train);
         fprintf(stderr, "\nTRAIN: %f\n", train_acc);
         float test_acc = network_accuracy(net, test);
         fprintf(stderr, "TEST: %f\n\n", test_acc);
         printf("%d, %f, %f\n", count, train_acc, test_acc);
      //lr *= .5;
      }
      */
   }
}
@@ -387,7 +379,7 @@
         int index = rand()%m.rows;
         //image p = float_to_image(1690,1,1,m.vals[index]);
         //normalize_image(p);
         forward_network(net, m.vals[index]);
         forward_network(net, m.vals[index], 1);
         float *out = get_network_output(net);
         float *delta = get_network_delta(net);
         //printf("%f\n", out[0]);
@@ -408,7 +400,7 @@
   matrix test = csv_to_matrix("test.csv");
   truth = pop_column(&test, 0);
   for(i = 0; i < test.rows; ++i){
      forward_network(net, test.vals[i]);
      forward_network(net, test.vals[i], 0);
      float *out = get_network_output(net);
      if(fabs(out[0]) < .5) fprintf(fp, "0\n");
      else fprintf(fp, "1\n");
@@ -439,7 +431,7 @@
   float *matrix = calloc(msize, sizeof(float));
   int i;
   for(i = 0; i < 1000; ++i){
      im2col_cpu(test.data,  c,  h,  w,  size,  stride, matrix);
      im2col_cpu(test.data, 1, c,  h,  w,  size,  stride, matrix);
      //image render = float_to_image(mh, mw, mc, matrix);
   }
}
@@ -506,7 +498,7 @@
   //normalize_array(im.data, im.h*im.w*im.c);
   translate_image(im, -144);
   resize_network(net, im.h, im.w, im.c);
   forward_network(net, im.data);
   forward_network(net, im.data, 0);
   image out = get_network_image(net);
   free_image(im);
   cvReleaseImage(&sized);
@@ -558,7 +550,7 @@
      resize_network(net, im.h, im.w, im.c);
      //scale_image(im, 1./255);
      translate_image(im, -144);
      forward_network(net, im.data);
      forward_network(net, im.data, 0);
      image out = get_network_image(net);
      int dh = (im.h - h)/(out.h-1);
@@ -620,7 +612,7 @@
      image im = load_image(image_path, 0, 0);
      printf("Processing %dx%d image\n", im.h, im.w);
      resize_network(net, im.h, im.w, im.c);
      forward_network(net, im.data);
      forward_network(net, im.data, 0);
      image out = get_network_image(net);
      int dh = (im.h - h)/h;
@@ -653,11 +645,9 @@
   image im = load_image("data/cat.png", 0, 0);
   printf("Processing %dx%d image\n", im.h, im.w);
   resize_network(net, im.h, im.w, im.c);
   forward_network(net, im.data);
   forward_network(net, im.data, 0);
   image out = get_network_image(net);
   visualize_network(net);
   cvWaitKey(1000);
   cvWaitKey(0);
}
@@ -672,8 +662,6 @@
   if (flip)sprintf(out_path, "%s%d/%s_r.txt",out_dir, interval, image_file);
   else sprintf(out_path, "%s%d/%s.txt",out_dir, interval, image_file);
   printf("%s\n", image_file);
   FILE *fp = fopen(out_path, "w");
   if(fp == 0) file_error(out_path);
   IplImage* src = 0;
   if( (src = cvLoadImage(image_path,-1)) == 0 ) file_error(image_path);
@@ -709,6 +697,8 @@
         ims[j+interval] = features_output_size(net, src, ex_h, ex_w);
      }
   }
   FILE *fp = fopen(out_path, "w");
   if(fp == 0) file_error(out_path);
   for(i = 0; i < max_scale+interval; ++i){
      image out = ims[i];
      fprintf(fp, "%d, %d, %d\n",out.c, out.h, out.w);
@@ -784,13 +774,13 @@
   //    test_im2row();
   //test_split();
   //test_ensemble();
   //test_nist();
   test_nist();
   //test_cifar10();
   //test_vince();
   //test_full();
   //train_VOC();
   features_VOC_image(argv[1], argv[2], argv[3], 0);
   features_VOC_image(argv[1], argv[2], argv[3], 1);
   //features_VOC_image(argv[1], argv[2], argv[3], 0);
   //features_VOC_image(argv[1], argv[2], argv[3], 1);
   //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");