一.Caffe原版
- 论文,官方教程(文件组织方式、训练、测试),官方资源库,训练好的模型。
- 下载SegNet-Tutorial,命名为SegNet。包含训练数据和列表。
- 下载caffe-segnet,如果出现cudnn错误可以下载caffe-segnet-cudnn5。命名为caffe-segnet,放入上面的SegNet。
- 为了编译Caffe,安装OpenCV是要选中BUILD_TIFF=ON,或使用cmake .. -DBUILD_TIFF=ON。
- 编译Caffe:进入caffe-segnet,创建build文件夹编译,或按照教程。
- 按照官方教程训练测试。
二.Tensorflow复现版
- 下载源码。
- 可以把Caffe版的数据集拿来用。
- 错误及解决:
#错误 ".../tensorflow/python/ops/gradients_impl.py", line 459, in gradients (op.name, op.type)) LookupError: No gradient defined for operation 'pool4' (op type: MaxPoolWithArgmax) #解决 from tensorflow.python.framework import ops from tensorflow.python.ops import gen_nn_ops @ops.RegisterGradient("MaxPoolWithArgmax") def _MaxPoolWithArgmaxGrad(op, grad, unused_argmax_grad): return gen_nn_ops._max_pool_grad(op.inputs[0], op.outputs[0], grad, op.get_attr("ksize"), op.get_attr("strides"), padding=op.get_attr("padding"), data_format='NHWC') #错误 InvalidArgumentError (see above for traceback): No OpKernel was registered to support Op 'MaxPoolWithArgmax' with these attrs. Registered devices: [CPU], Registered kernels: device='GPU'; Targmax in [DT_INT64]; T in [DT_HALF] device='GPU'; Targmax in [DT_INT64]; T in [DT_FLOAT] [[Node: pool1 = MaxPoolWithArgmax[T=DT_FLOAT, Targmax=DT_INT64, ksize=[1, 2, 2, 1], padding="SAME", strides=[1, 2, 2, 1]](conv1/Relu)]] #原因:缺少GPU
- 第四