From 2b2441313b73c460a60c013c3b7bf9e19c994b6b Mon Sep 17 00:00:00 2001
From: Joseph Redmon <pjreddie@gmail.com>
Date: Thu, 30 Oct 2014 18:28:37 +0000
Subject: [PATCH] col2im maybe a little faster

---
 src/cnn.c |   34 +++++++++++++++++++++++-----------
 1 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/src/cnn.c b/src/cnn.c
index 9e9e62b..ed5fee3 100644
--- a/src/cnn.c
+++ b/src/cnn.c
@@ -308,10 +308,10 @@
 
 void train_imagenet()
 {
-	network net = parse_network_cfg("/home/pjreddie/imagenet_backup/imagenet_backup_slower_larger_870.cfg");
+	network net = parse_network_cfg("cfg/imagenet_small_830.cfg");
     printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net.learning_rate, net.momentum, net.decay);
     int imgs = 1000/net.batch+1;
-	srand(986987);
+	srand(6472345);
 	int i = 0;
     char **labels = get_labels("/home/pjreddie/data/imagenet/cls.labels.list");
     list *plist = get_paths("/data/imagenet/cls.train.list");
@@ -332,7 +332,7 @@
 		free_data(train);
 		if(i%10==0){
 			char buff[256];
-			sprintf(buff, "/home/pjreddie/imagenet_backup/imagenet_backup_larger_%d.cfg", i);
+			sprintf(buff, "/home/pjreddie/imagenet_backup/imagenet_small_%d.cfg", i);
 			save_network(net, buff);
 		}
 	}
@@ -397,7 +397,7 @@
 
 void test_visualize()
 {
-    network net = parse_network_cfg("cfg/imagenet_test.cfg");
+    network net = parse_network_cfg("cfg/imagenet.cfg");
     visualize_network(net);
     cvWaitKey(0);
 }
@@ -991,7 +991,7 @@
     translate_data_rows(train, -144);
     translate_data_rows(test, -144);
     int count = 0;
-    int iters = 10000/net.batch;
+    int iters = 1000/net.batch;
     while(++count <= 5){
         clock_t start = clock(), end;
         float loss = train_network_sgd(net, train, iters);
@@ -999,6 +999,7 @@
         float test_acc = network_accuracy(net, test);
         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, net.learning_rate, net.momentum, net.decay);
     }
+    #ifdef GPU
     count = 0;
     srand(222222);
     net = parse_network_cfg("cfg/nist.cfg");
@@ -1009,24 +1010,35 @@
         float test_acc = network_accuracy(net, test);
         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, net.learning_rate, net.momentum, net.decay);
     }
+    #endif
 }
 
 
 int main(int argc, char *argv[])
 {
+    int i;
+    int ksize = 3;
+    int stride = 4;
+    int width_col = 20;
+    for(i = 0; i < 10; ++i){
+        int start = (i<ksize)?0:(i-ksize)/stride + 1;
+        int start2 = (i-ksize+stride)/stride;
+        int end = i/stride + 1;
+        end = (width_col < end) ? width_col : end;
+        printf("%d: %d vs %d, %d\n", i, start,start2, end);
+    }
     if(argc != 2){
         fprintf(stderr, "usage: %s <function>\n", argv[0]);
         return 0;
     }
     if(0==strcmp(argv[1], "train")) train_imagenet();
     else if(0==strcmp(argv[1], "train_small")) train_imagenet_small();
+    else if(0==strcmp(argv[1], "test_correct")) test_gpu_net();
+    else if(0==strcmp(argv[1], "test")) test_imagenet();
+    else if(0==strcmp(argv[1], "visualize")) test_visualize();
+    #ifdef GPU
     else if(0==strcmp(argv[1], "test_gpu")) test_gpu_blas();
-    else if(0==strcmp(argv[1], "test")) test_gpu_net();
-    //test_gpu_blas();
-    //train_imagenet_small();
-    //test_imagenet();
-    //train_nist();
-    //test_visualize();
+    #endif
     fprintf(stderr, "Success!\n");
     return 0;
 }

--
Gitblit v1.10.0