我目前正在尝试在TensorFlow中实现FCN for semantic segmentation,就像之前在Caffe here中完成的一样。
不幸的是,我正在努力完成以下三件事:
1)如何将“Deconvolution”图层从Caffe映射到TensorFlow?它是否正确tf.nn.conv2d_transpose
?
2)如何将“Crop”图层从Caffe映射到TensorFlow?不幸的是,我在TensorFlow中看不到任何替代方案。在TensorFlow中是否有相同的效果?
3)Caffe SoftmaxWithLoss
是否对应于TensorFlow softmax_cross_entropy_with_logits?
提前感谢您提供任何建议,提示和帮助。
编辑2016年5月9日:
1)我发现tf.nn.conv2_transpose
确实对应于反卷积层。
2)现在裁剪层似乎确实是一个问题。我发现实际上存在tf.image.resize_image_with_crop_or_pad
,但这似乎不可能用于此目的,因为它不能用于动态创建的张量,也不能用于{{1}之后需要使用的4D张量} layer。
可能会有更多信息:https://github.com/tensorflow/tensorflow/issues/2049
编辑2016年5月17日:
我已经关注@ 24hours建议并在张量流中构建FCN,但我无法对任意大小的数据进行训练。
2)确实不需要裁剪层。
3)我最后使用了tf.nn.conv2_transpose
,它对我有用。
答案 0 :(得分:6)
感谢@ 24hours的建议,我找到了所有3个问题的答案。不幸的是,张量流中任意大小的FCN都比caffe复杂一点,但希望我能尽快解决。
1)tf.nn.conv2d_transpose
可以使用。
2)不需要裁剪图层,可以使用output_size
图层的tf.nn.conv2d_transpose
代替。
3)最后我使用了tf.nn.sparse_softmax_cross_entropy_with_logits