From 79fffcce3ce495bd415dc1284224c915d7194d4c Mon Sep 17 00:00:00 2001
From: Joseph Redmon <pjreddie@gmail.com>
Date: Thu, 11 Dec 2014 21:15:26 +0000
Subject: [PATCH] Better imagenet distributed training

---
 src/server.c |   19 +++++++++++++------
 1 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/src/server.c b/src/server.c
index 70f1889..919d1da 100644
--- a/src/server.c
+++ b/src/server.c
@@ -15,7 +15,7 @@
 #include "connected_layer.h"
 #include "convolutional_layer.h"
 
-#define SERVER_PORT 9876
+#define SERVER_PORT 9423
 #define STR(x) #x
 
 int socket_setup(int server)
@@ -46,7 +46,7 @@
 
 typedef struct{
     int fd;
-    int *counter;
+    int counter;
     network net;
 } connection_info;
 
@@ -85,6 +85,11 @@
     connection_info info = *(connection_info *) pointer;
     free(pointer);
     //printf("New Connection\n");
+    if(info.counter%100==0){
+        char buff[256];
+        sprintf(buff, "/home/pjreddie/net_%d.part", info.counter);
+        save_network(info.net, buff);
+    }
     int fd = info.fd;
     network net = info.net;
     int i;
@@ -134,7 +139,7 @@
     while(1){
         connection_info *info = calloc(1, sizeof(connection_info));
         info->net = net;
-        info->counter = &counter;
+        info->counter = counter;
         pthread_t worker;
         int connection = accept(fd, (struct sockaddr *) &client, &client_size);
         if(!t) t=time(0);
@@ -142,10 +147,8 @@
         pthread_create(&worker, NULL, (void *) &handle_connection, info);
         ++counter;
         printf("%d\n", counter);
-        if(counter == 1024) break;
-        if(counter%1000==0) save_network(net, "cfg/nist.part");
+        //if(counter == 1024) break;
     }
-    printf("1024 epochs: %d seconds\n", time(0)-t);
     close(fd);
 }
 
@@ -204,7 +207,9 @@
             int num = layer.n*layer.c*layer.size*layer.size;
             read_all(fd, (char*) layer.filters, num*sizeof(float));
 
+#ifdef GPU
             push_convolutional_layer(layer);
+            #endif
         }
         if(net.types[i] == CONNECTED){
             connected_layer layer = *(connected_layer *) net.layers[i];
@@ -212,7 +217,9 @@
             read_all(fd, (char *)layer.biases, layer.outputs*sizeof(float));
             read_all(fd, (char *)layer.weights, layer.outputs*layer.inputs*sizeof(float));
 
+#ifdef GPU
             push_connected_layer(layer);
+            #endif
         }
     }
     //printf("Updated\n");

--
Gitblit v1.10.0