Joseph Redmon
2015-03-08 655f636a42d6e1d4518b712cfac6d973424de693
src/detection_layer.c
@@ -53,13 +53,10 @@
            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 @@
            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;
    }
}