From 158bb1bee9951875dbe3474d84c6663431e18301 Mon Sep 17 00:00:00 2001
From: Joseph Redmon <pjreddie@gmail.com>
Date: Tue, 21 Oct 2014 21:49:18 +0000
Subject: [PATCH] softmax on gpu

---
 src/cnn.c |   17 ++++++++++-------
 1 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/cnn.c b/src/cnn.c
index bfba26a..7e90a80 100644
--- a/src/cnn.c
+++ b/src/cnn.c
@@ -281,15 +281,17 @@
 void train_assira()
 {
 	network net = parse_network_cfg("cfg/assira.cfg");
+    int imgs = 1000/net.batch+1;
+    //imgs = 1;
 	srand(2222222);
 	int i = 0;
 	char *labels[] = {"cat","dog"};
 	while(1){
 		i += 1000;
-		data train = load_data_image_pathfile_random("data/assira/train.list", 1000, labels, 2, 256, 256);
+		data train = load_data_image_pathfile_random("data/assira/train.list", imgs*net.batch, labels, 2, 256, 256);
 		normalize_data_rows(train);
 		clock_t start = clock(), end;
-		float loss = train_network_sgd_gpu(net, train, 10);
+		float loss = train_network_sgd_gpu(net, train, imgs);
 		end = clock();
 		printf("%d: %f, Time: %lf seconds\n", i, loss, (float)(end-start)/CLOCKS_PER_SEC );
 		free_data(train);
@@ -358,7 +360,7 @@
     data train = load_all_cifar10();
     while(++count <= 10000){
         clock_t start = clock(), end;
-        float loss = train_network_sgd_gpu(net, train, iters);
+        float loss = train_network_sgd(net, train, iters);
         end = clock();
         //visualize_network(net);
         //cvWaitKey(5000);
@@ -369,7 +371,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);
             char buff[256];
-            sprintf(buff, "/home/pjreddie/cifar/cifar2_%d.cfg", count);
+            sprintf(buff, "/home/pjreddie/cifar/cifar10_2_%d.cfg", count);
             save_network(net, buff);
         }else{
             printf("%d: Loss: %f, Time: %lf seconds, LR: %f, Momentum: %f, Decay: %f\n", count, loss, (float)(end-start)/CLOCKS_PER_SEC, net.learning_rate, net.momentum, net.decay);
@@ -435,7 +437,7 @@
     int iters = 10000/net.batch;
     while(++count <= 2000){
         clock_t start = clock(), end;
-        float loss = train_network_sgd(net, train, iters);
+        float loss = train_network_sgd_gpu(net, train, iters);
         end = clock();
         float test_acc = network_accuracy(net, test);
         //float test_acc = 0;
@@ -893,7 +895,8 @@
 
 int main(int argc, char *argv[])
 {
-    //train_assira();
+    //test_blas();
+    train_assira();
     //test_distribution();
     //feenableexcept(FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW);
 
@@ -907,7 +910,7 @@
     //test_ensemble();
     //test_nist_single();
     //test_nist();
-    train_nist();
+    //train_nist();
     //test_convolutional_layer();
     //test_col2im();
     //test_cifar10();

--
Gitblit v1.10.0