AlexeyAB
2018-05-21 f9ecf6fd3f0df305d7103ecc3f15b23bba260baf
For Release build - equality check: output of [convolutional] == input of [yolo].
2 files modified
16 ■■■■ changed files
src/parser.c 14 ●●●● patch | view | raw | blame | history
src/yolo_layer.c 2 ●●● patch | view | raw | blame | history
src/parser.c
@@ -270,7 +270,12 @@
    int *mask = parse_yolo_mask(a, &num);
    int max_boxes = option_find_int_quiet(options, "max", 30);
    layer l = make_yolo_layer(params.batch, params.w, params.h, num, total, mask, classes, max_boxes);
    assert(l.outputs == params.inputs);
    if (l.outputs != params.inputs) {
        printf("Error: l.outputs == params.inputs \n");
        printf("filters= in the [convolutional]-layer doesn't correspond to classes= or mask= in [yolo]-layer \n");
        exit(EXIT_FAILURE);
    }
    //assert(l.outputs == params.inputs);
    //l.max_boxes = option_find_int_quiet(options, "max", 90);
    l.jitter = option_find_float(options, "jitter", .2);
@@ -308,7 +313,12 @@
    int max_boxes = option_find_int_quiet(options, "max", 30);
    layer l = make_region_layer(params.batch, params.w, params.h, num, classes, coords, max_boxes);
    assert(l.outputs == params.inputs);
    if (l.outputs != params.inputs) {
        printf("Error: l.outputs == params.inputs \n");
        printf("filters= in the [convolutional]-layer doesn't correspond to classes= or num= in [region]-layer \n");
        exit(EXIT_FAILURE);
    }
    //assert(l.outputs == params.inputs);
    l.log = option_find_int_quiet(options, "log", 0);
    l.sqrt = option_find_int_quiet(options, "sqrt", 0);
src/yolo_layer.c
@@ -112,7 +112,7 @@
void delta_yolo_class(float *output, float *delta, int index, int class_id, int classes, int stride, float *avg_cat, int focal_loss)
{
    int n;
    if (delta[index]){
    if (delta[index + stride*class_id]){
        delta[index + stride*class_id] = 1 - output[index + stride*class_id];
        if(avg_cat) *avg_cat += output[index + stride*class_id];
        return;