python - TensorFlow 中的 FCN 缺少裁剪层

标签 python tensorflow caffe

我目前正在尝试实现 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/

相关文章:

machine-learning - Tensorflow 所有变量都经过训练吗?

machine-learning - 求解器参数 'test_iter' 在测试阶段更改标签值

python - 不同图像的相同 fc6 响应

neural-network - 是否有使用加权损失进行像素分割/分类任务的示例?

python - Tensorflow (1.4.0) 中的脚本需要导入 'reader.py'(也位于 tensorflow 中)但失败了。不知道该怎么办

python - 如何使用 Paramiko 制作 sudo 命令

对象中的 Python 缓存

python - 从 bash 调用 python 脚本在命令提示符处停止

python - 什么是 tensorflow float ref?

collections - 在tensorflow中,你可以定义自己的集合名称吗?