我目前正在尝试实现 FCN for semantic segmentation在 TensorFlow 中,就像以前在 Caffe 中所做的那样 here .
不幸的是,我正在为以下三件事而苦苦挣扎:
1) 如何将“反卷积”层从 Caffe 映射到 TensorFlow? tf.nn.conv2d_transpose
是否正确?
2) 如何将“裁剪”层从 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
,但这似乎无法用于此目的,因为它不能用于动态创建的张量,也不能用于您需要在 tf.nn.conv2_transpose
层之后使用的 4D 张量。
更多信息可能在:https://github.com/tensorflow/tensorflow/issues/2049
2016 年 5 月 17 日编辑:
我听从了@24hours 的建议并在 tensorflow 中构建了 FCN,尽管我无法让它训练任意大小的数据。
2)确实不需要裁剪层。
3) 我在最后使用了 tf.nn.sparse_softmax_cross_entropy_with_logits
,它对我有用。
最佳答案
感谢@24hours 的建议,我找到了所有 3 个问题的答案。不幸的是,tensorflow 中任意大小的 FCN 比在 caffe 中复杂一点,但希望我也能尽快解决这个问题。
1) 可以使用tf.nn.conv2d_transpose
。
2) 不需要裁剪层,可以使用 tf.nn.conv2d_transpose
层的 output_size
代替。
3) 最后我使用了 tf.nn.sparse_softmax_cross_entropy_with_logits
关于python - TensorFlow 中的 FCN 缺少裁剪层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36746860/