【问题标题】:TPU support for image augmentation with transformsTPU 支持使用变换进行图像增强
【发布时间】:2020-06-04 17:12:16
【问题描述】:

我最近使用 tf 函数和 tf 记录重新编码了我的输入图像管道,以便我可以使用 TPU(以前使用带有 opencv 的自定义 tf.py_function)。问题是我使用tfa.image.transform 来应用旋转和缩放增强,但 TPU 显然不支持 tensorflow 插件包。在 TPU 管道中使用转换执行图像增强有哪些替代方法?

【问题讨论】:

    标签: tensorflow tpu google-cloud-tpu


    【解决方案1】:

    我通过将 tfa.image.transform 替换为以下内容解决了这个问题:

    from tensorflow.python.keras.layers.preprocessing import image_preprocessing as image_ops
    image_ops.transform()
    

    原来 tfa.image.transform 只是这个函数的一个包装器。两个函数的参数相同。

    【讨论】:

    • 我很想知道您是如何做到这一点的。尝试在具有 TF 2.3.0(当前稳定版本)的 TPU 上使用 keras 预处理层时,我遇到了与 this question 相同的问题。根据github 的说法,transform() 是对ImageProjectiveTransformV2() 的封装,目前 TPU 似乎不支持。
    • transform() 函数目前在 v3-8 上使用 TF 2.3 为我工作。你在使用 TFrecords 和 tf.data api吗?你得到什么样的错误?
    • 我确实遇到了与我链接到的问题相同的错误,虽然我没有明确使用transform(),但我使用的是在下面使用相同操作的图层(AFAIK)。我只使用 v2-8 TPU,所以我可能会尝试使用 v3-8 看看是否会有所不同。
    • v3-8 和 v2-8 没有区别。我正在使用 tfrecords 和 tf.data API,但转换在新的 keras 预处理层中,它们是模型的一部分。我怀疑将操作编译成模型是这里的问题。反正我在github上有opened an issue,他们已经转载了,所以我不会再出轨这个问题线程了!
    猜你喜欢
    • 2015-04-24
    • 2018-04-14
    • 2014-05-09
    • 2013-10-19
    • 1970-01-01
    • 2012-07-08
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    相关资源
    最近更新 更多