From 6aa140b3c6e9917936f73bd538fce4fe20954233 Mon Sep 17 00:00:00 2001 From: AlexeyAB Date: Sun, 15 Apr 2018 16:57:05 +0300 Subject: [PATCH] Disable burn_in for FP16 Tensor Cores --- src/demo.c | 4 ++-- src/detector.c | 2 +- src/parser.c | 3 +++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/demo.c b/src/demo.c index 65f451fc..4aee54f2 100644 --- a/src/demo.c +++ b/src/demo.c @@ -144,11 +144,11 @@ void demo(char *cfgfile, char *weightfile, float thresh, float hier_thresh, int demo_classes = classes; demo_thresh = thresh; printf("Demo\n"); - net = parse_network_cfg_custom(cfgfile, 1); + net = parse_network_cfg_custom(cfgfile, 1); // set batch=1 if(weightfile){ load_weights(&net, weightfile); } - set_batch_network(&net, 1); + //set_batch_network(&net, 1); fuse_conv_batchnorm(net); srand(2222222); diff --git a/src/detector.c b/src/detector.c index a0372ab7..e4687beb 100644 --- a/src/detector.c +++ b/src/detector.c @@ -167,7 +167,7 @@ void train_detector(char *datacfg, char *cfgfile, char *weightfile, int *gpus, i #else loss = train_network(net, train); #endif - if (avg_loss < 0) avg_loss = loss; + if (avg_loss < 0 || avg_loss != avg_loss) avg_loss = loss; // if(-inf or nan) avg_loss = avg_loss*.9 + loss*.1; i = get_current_batch(net); diff --git a/src/parser.c b/src/parser.c index 651671bb..319235a7 100644 --- a/src/parser.c +++ b/src/parser.c @@ -636,6 +636,9 @@ void parse_net_options(list *options, network *net) char *policy_s = option_find_str(options, "policy", "constant"); net->policy = get_policy(policy_s); net->burn_in = option_find_int_quiet(options, "burn_in", 0); +#ifdef CUDNN_HALF + net->burn_in = 0; +#endif if(net->policy == STEP){ net->step = option_find_int(options, "step", 1); net->scale = option_find_float(options, "scale", 1);