From f762e6adb50d0a7eb72825b322e7d4192ae29ef3 Mon Sep 17 00:00:00 2001
From: Alexey <AlexeyAB@users.noreply.github.com>
Date: Sat, 03 Feb 2018 12:38:31 +0000
Subject: [PATCH] Merge pull request #357 from rajendraarora16/new-changes-darknet

---
 src/parser.c |   27 ++++++++++++++++++++++++---
 1 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/src/parser.c b/src/parser.c
index 87a6491..2a1ea3b 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -29,6 +29,7 @@
 #include "shortcut_layer.h"
 #include "softmax_layer.h"
 #include "utils.h"
+#include <stdint.h>
 
 typedef struct{
     char *type;
@@ -531,6 +532,7 @@
     net->saturation = option_find_float_quiet(options, "saturation", 1);
     net->exposure = option_find_float_quiet(options, "exposure", 1);
     net->hue = option_find_float_quiet(options, "hue", 0);
+	net->power = option_find_float_quiet(options, "power", 4);
 
     if(!net->inputs && !(net->h && net->w && net->c)) error("No input parameters supplied");
 
@@ -570,7 +572,7 @@
         net->gamma = option_find_float(options, "gamma", 1);
         net->step = option_find_int(options, "step", 1);
     } else if (net->policy == POLY || net->policy == RANDOM){
-        net->power = option_find_float(options, "power", 1);
+        //net->power = option_find_float(options, "power", 1);
     }
     net->max_batches = option_find_int(options, "max_batches", 0);
 }
@@ -583,6 +585,11 @@
 
 network parse_network_cfg(char *filename)
 {
+	return parse_network_cfg_custom(filename, 0);
+}
+
+network parse_network_cfg_custom(char *filename, int batch)
+{
     list *sections = read_cfg(filename);
     node *n = sections->front;
     if(!n) error("Config file has no sections");
@@ -599,6 +606,7 @@
     params.w = net.w;
     params.c = net.c;
     params.inputs = net.inputs;
+	if (batch > 0) net.batch = batch;
     params.batch = net.batch;
     params.time_steps = net.time_steps;
     params.net = net;
@@ -665,6 +673,8 @@
         }else{
             fprintf(stderr, "Type not recognized: %s\n", s->type);
         }
+        l.onlyforward = option_find_int_quiet(options, "onlyforward", 0);
+        l.stopbackward = option_find_int_quiet(options, "stopbackward", 0);
         l.dontload = option_find_int_quiet(options, "dontload", 0);
         l.dontloadscales = option_find_int_quiet(options, "dontloadscales", 0);
         option_unused(options);
@@ -698,6 +708,8 @@
     return net;
 }
 
+
+
 list *read_cfg(char *filename)
 {
     FILE *file = fopen(filename, "r");
@@ -826,7 +838,7 @@
     }
 #endif
     fprintf(stderr, "Saving weights to %s\n", filename);
-    FILE *fp = fopen(filename, "w");
+    FILE *fp = fopen(filename, "wb");
     if(!fp) file_error(filename);
 
     int major = 0;
@@ -1023,7 +1035,16 @@
     fread(&major, sizeof(int), 1, fp);
     fread(&minor, sizeof(int), 1, fp);
     fread(&revision, sizeof(int), 1, fp);
-    fread(net->seen, sizeof(int), 1, fp);
+	if ((major * 10 + minor) >= 2) {
+		printf("\n seen 64 \n");
+		uint64_t iseen = 0;
+		fread(&iseen, sizeof(uint64_t), 1, fp);
+		*net->seen = iseen;
+	}
+	else {
+		printf("\n seen 32 \n");
+		fread(net->seen, sizeof(int), 1, fp);
+	}
     int transpose = (major > 1000) || (minor > 1000);
 
     int i;

--
Gitblit v1.10.0