From 989ab8c38a02fa7ea9c25108151736c62e81c972 Mon Sep 17 00:00:00 2001
From: Joseph Redmon <pjreddie@gmail.com>
Date: Fri, 24 Apr 2015 17:27:50 +0000
Subject: [PATCH] IOU loss function
---
src/network.c | 33 +++++++++++++++------------------
1 files changed, 15 insertions(+), 18 deletions(-)
diff --git a/src/network.c b/src/network.c
index 61200d3..3247a31 100644
--- a/src/network.c
+++ b/src/network.c
@@ -186,6 +186,9 @@
if(net.types[net.n-1] == COST){
return ((cost_layer *)net.layers[net.n-1])->output[0];
}
+ if(net.types[net.n-1] == DETECTION){
+ return ((detection_layer *)net.layers[net.n-1])->cost[0];
+ }
return 0;
}
@@ -194,24 +197,6 @@
return get_network_delta_layer(net, net.n-1);
}
-float calculate_error_network(network net, float *truth)
-{
- float sum = 0;
- float *delta = get_network_delta(net);
- float *out = get_network_output(net);
- int i;
- for(i = 0; i < get_network_output_size(net)*net.batch; ++i){
- //if(i %get_network_output_size(net) == 0) printf("\n");
- //printf("%5.2f %5.2f, ", out[i], truth[i]);
- //if(i == get_network_output_size(net)) printf("\n");
- delta[i] = truth[i] - out[i];
- //printf("%.10f, ", out[i]);
- sum += delta[i]*delta[i];
- }
- //printf("\n");
- return sum;
-}
-
int get_predicted_class_network(network net)
{
float *out = get_network_output(net);
@@ -518,6 +503,18 @@
return get_network_input_size_layer(net, 0);
}
+detection_layer *get_network_detection_layer(network net)
+{
+ int i;
+ for(i = 0; i < net.n; ++i){
+ if(net.types[i] == DETECTION){
+ detection_layer *layer = (detection_layer *)net.layers[i];
+ return layer;
+ }
+ }
+ return 0;
+}
+
image get_network_image_layer(network net, int i)
{
if(net.types[i] == CONVOLUTIONAL){
--
Gitblit v1.10.0