TensorFlow中的FCN缺少裁剪层

时间:2016-04-20 14:24:02

标签: python tensorflow caffe

我目前正在尝试在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,它对我有用。

1 个答案:

答案 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