【发布时间】:2020-04-17 05:23:25
【问题描述】:
我已经开始使用 TensorFlow 2.0,在某一方面有点不确定。
假设我有这个用例:在使用 tf.data.Dataset 摄取数据时,我想对一些图像应用一些特定的增强操作。但是,我使用的外部库要求 图像是一个 numpy 数组,不是张量。
使用tf.data.Dataset.from_tensor_slices()时,流动数据需要是Tensor类型。具体例子:
def my_function(tensor_image):
print(tensor_image.numpy()
return
data = tf.data.Dataset.from_tensor_slices(tensor_images).map(my_function)
上面的代码不能产生一个
'Tensor' 对象没有属性 'numpy' 错误。
我已阅读有关 TensorFlow 2.0 的文档,说明如果想要使用任意 Python 逻辑,则应使用 tf.py_function 或仅使用 TensorFlow 原语,根据:
How to convert "tensor" to "numpy" array in tensorflow?
我的问题如下:是否有另一种方法可以在具有自定义装饰器的函数中使用任意 python 代码/比使用tf.py_function 更简单的方法?
老实说,似乎必须有一种比传递给tf.py_function、转换为 numpy 数组、执行操作 A、B、C、D 然后重新转换为张量并产生结果更优雅的方法。
【问题讨论】:
标签: python tensorflow-datasets tensorflow2.0