在训练过程中,我一直有两个疑问,一是在不加入upsampling的情况下,输入的label大小怎么和输出的label大小对应上的,因为输入是输出的8倍,我看了源码image_label_data_layer.cpp中应该有将输入的label放缩到原来的1/8,这样可以加快方向传播的速度。而是这个crop_size的大小是怎么定的,在文章给的caffe源码中,padimage函数中" if (image.rows >= min_size && image.cols >= min_size) {return image; }"其中crop_size主要是对原图进行打pad处理,所以一般crop_size要比输入图片的长或宽大,这样才能打pad。还有一点就是(crop_size-2*magin)一定要倍8整除。比如cityscape的1396-2*186=1024,1024是可以被8整除的,camvid中的1100和900同样如此。 还有文章给的模型一共有三个“front-end,context,joint”,其中主要是front-end模型,context主要是加了上下文的信息,joint是将front-end和context结合起来。 我自己使用的cityscape进行训练的,不过我没有用原图,我缩小到原来的1/2,所以我重新定义了crop_size,去掉了upsamping(原作者提到,之所以在cityscape上使用usampling主要是因为cityscape的分辨率太高原话为“I added an upconv in training cityscapes models because the high resolution of cityscapes data”)。 至于源码中有没有对输入的label进行放缩将后续更新。