• caffe segnet 报错


    Params 'pad_out_{}_' are deprecated. Please declare upsample height and width useing the upsample_h, upsample_w parameters.

    查了一下,segnet的长宽需要设成32的倍数,要不然就要指定upsample_w upsample_h 大小;
    参考链接:
    https://blog.csdn.net/hong__fang/article/details/78421803?utm_source=blogxgwz8

    message UpsampleParameter {
    // DEPRECATED. No need to specify upsampling scale factors when
    // exact output shape is given by upsample_h, upsample_w parameters.
    optional uint32 scale = 1 [default = 2];
    // DEPRECATED. No need to specify upsampling scale factors when
    // exact output shape is given by upsample_h, upsample_w parameters.
    optional uint32 scale_h = 2;
    // DEPRECATED. No need to specify upsampling scale factors when
    // exact output shape is given by upsample_h, upsample_w parameters.
    optional uint32 scale_w = 3;
    // DEPRECATED. Specify exact output height using upsample_h. This
    // parameter only works when scale is 2
    optional bool pad_out_h = 4 [default = false];
    // DEPRECATED. Specify exact output width using upsample_w. This
    // parameter only works when scale is 2
    optional bool pad_out_w = 5 [default = false];
    optional uint32 upsample_h = 6;
    optional uint32 upsample_w = 7;
    }
    可设置参数为:
    scale
    scale_h scale_w
    pad_out_h pad_out_w
    upsample_h upsample_w

    (1)先判断是否指定 upsample_hupsample_w,如果指定,大小为指定大小,否则(2)

    (2)判断是否指定 scale_h, 如果未指定, scale_h_ = scale_w_ = scale,否则(3)

    (3)scale_h_ = scale_h scale_w_=scale_w

    只有scale_h_ = scale_w_ =2时,才可以指定pad_out_h,pad_out_w,否则错误,如果是(2)(3)则top特征图大小为:

       upsample_h_ = bottom[0]->height() *  scale_h_ - int(pad_out_h) 
    
       upsample_w_ = bottom[0]->width() *  scale_w_ - int(pad_out_w) 
    

    注:

    (1)如果输入图像的高和宽不是32的整数倍,需要指定upsample_h, upsample_w的大小,不然会出现维度不一致的错误,原因是upsample需要借助编码过程中pool层的位置信息,例如: pool前特征图大小为45, pool后为23,如果直接对23 unsample, 其大小为46, 而pool产生的位置图大小为45,造成upsample时大小不一致;

    (2)指定upsample_h upsample_w的大小时,需要根据编码过程中对应pool特征图的大小,来设定upsample的大小,例如样例proto中输入图像大小为480*360, 以360分析:360—pool1(180)—pool2 (90)—pool3 (45)—pool4(23)—pool5(12), upsample5需要借助pool4位置信息,需要与pool4大小一致,因此upsamle_h=23 ~
    layer {
    name: "upsample4"
    type: "Upsample"
    bottom: "conv5_1_D"
    top: "pool4_D"
    bottom: "pool4_mask"
    upsample_param {
    scale: 2
    upsample_w: 60
    upsample_h: 45
    }
    }

    我的解决办法:
    在出错前面caffe会打印出top维度,一个个翻pool 的top,如下:
    relu4_3 <- conv4_3
    I1214 11:57:49.440979 20931 net.cpp:395] relu4_3 -> conv4_3 (in-place)
    I1214 11:57:49.440987 20931 net.cpp:150] Setting up relu4_3
    I1214 11:57:49.440994 20931 net.cpp:157] Top shape: 1 64 25 25 (40000)
    I1214 11:57:49.440999 20931 net.cpp:165] Memory required for data: 119680000
    I1214 11:57:49.441007 20931 layer_factory.hpp:77] Creating layer pool4
    I1214 11:57:49.441026 20931 net.cpp:100] Creating Layer pool4
    I1214 11:57:49.441032 20931 net.cpp:434] pool4 <- conv4_3
    I1214 11:57:49.441041 20931 net.cpp:408] pool4 -> pool4
    I1214 11:57:49.441049 20931 net.cpp:408] pool4 -> pool4_mask
    I1214 11:57:49.441085 20931 net.cpp:150] Setting up pool4
    I1214 11:57:49.441094 20931 net.cpp:157] Top shape: 1 64 13 13 (10816)
    I1214 11:57:49.441102 20931 net.cpp:157] Top shape: 1 64 13 13 (10816)
    I1214 11:57:49.441107 20931 net.cpp:165] Memory required for data: 119766528
    I1214 11:57:49.441112 20931 layer_factory.hpp:77] Creating layer upsample4
    I1214 11:57:49.441119 20931 net.cpp:100] Creating Layer upsample4
    I1214 11:57:49.441126 20931 net.cpp:434] upsample4 <- pool4
    I1214 11:57:49.441133 20931 net.cpp:434] upsample4 <- pool4_mask

    Top shape: 1 64 13 13 (10816)
    13 13 就是一个。
    但是upsample4 对应上pool3 的top

  • 相关阅读:
    功能超级丰富的彩色贪吃蛇,有道具,有等级!
    【Android开发经验】LayoutInflater—— 你可能对它并不了解甚至错误使用
    数据库常见面试题总结
    数据结构——算法之(041)(寻找数组中的最大值和最小值)
    Riak VClock
    【面试虐菜】—— JAVA面试题(2)
    【面试虐菜】—— MongoDB知识整理
    【面试虐菜】—— Oracle知识整理《收获,不止Oracle》
    【面试虐菜】—— Oracle知识整理《DBA的思想天空》
    【面试虐菜】—— Oracle中CHAR、VARCHAR的区别
  • 原文地址:https://www.cnblogs.com/yanghailin/p/12038939.html
Copyright © 2020-2023  润新知