我在Hackernoon上阅读了blog post,关于Tensorflow's
tf.image.resize_area()
函数不是反射等变的,所以如果我在数据增加的步骤中调整图像的大小,这可能真的会打乱模型训练。
作者接着说,用户不应该使用任何tf.image.resize
函数,因为可能会出现不可预测的行为。这篇文章是2018年1月发表的,所以时间不长。我实际上查看了文章的评论部分,没有人提到问题已经修复。
我只是想知道这些问题是否仍然存在,解决方法是什么?在tensorflow
的后续版本中有什么变化吗?比如我可以使用tf.keras
增强函数来避免这些问题吗?
4条答案
按热度按时间ycggw6v21#
在我最初阅读了您引用的Hackernoon文章之后,我还看到了this article,它很好地总结了OpenCV、TF 1.X和其他一些DL框架中双线性插值的不同实现。
我在TF 2.0文档中找不到这方面的任何内容,因此我复制了该文章中给出的示例,以测试2.0中的双线性插值。当我使用TensorFlow 2.0运行以下代码时,测试通过。因此,看起来迁移到TF2.0将为您提供与OpenCV实现相匹配的双线性插值实现(因此解决了Hackernoon文章中提出的问题):
5ssjco0h2#
我在一个真实的图像上测试了
tf.resize
,但是我不能得到相同的图像。所以准备好根据你的训练结果尝试不同的库。查看here的详细信息。scyqe7ek3#
我刚刚遇到这个问题,并做了一些测试自己使用的图像类似于在Hackernoon article中使用的。你可以找到一个简短的笔记本here与我的发现。截至TF v2.3.1似乎像素移位已被修复,但插值仍然是相当不同的(如着色)相比,
PIL
或scikit-image
。uyhoqukh4#
在TensorFlow中,
align_corners
有专用参数,您可以检查文档here下面是一个演示代码