detection layer fixed

This commit is contained in:
Joseph Redmon
2015-03-08 11:25:28 -07:00
parent 2313a8eb54
commit 655f636a42
9 changed files with 141 additions and 36 deletions

View File

@ -53,13 +53,10 @@ void forward_detection_layer(const detection_layer layer, float *in, float *trut
layer.output[out_i++] = scale*in[in_i++];
}
softmax_array(layer.output + out_i - layer.classes, layer.classes, layer.output + out_i - layer.classes);
activate_array(layer.output+out_i, layer.coords, SIGMOID);
activate_array(in+in_i, layer.coords, SIGMOID);
for(j = 0; j < layer.coords; ++j){
layer.output[out_i++] = mask*in[in_i++];
}
//printf("%d\n", mask);
//for(j = 0; j < layer.classes+layer.coords; ++j) printf("%f ", layer.output[i*(layer.classes+layer.coords)+j]);
//printf ("\n");
}
}
@ -78,10 +75,10 @@ void backward_detection_layer(const detection_layer layer, float *in, float *del
delta[in_i++] = scale*layer.delta[out_i++];
}
gradient_array(layer.output + out_i, layer.coords, SIGMOID, layer.delta + out_i);
for(j = 0; j < layer.coords; ++j){
delta[in_i++] = layer.delta[out_i++];
}
gradient_array(in + in_i - layer.coords, layer.coords, SIGMOID, layer.delta + out_i - layer.coords);
if(layer.rescore) delta[in_i-layer.coords-layer.classes-layer.rescore] = latent_delta;
}
}