我在数据处理中使用 tf.data.Dataset,我想用 tf.py_func 应用一些 python 代码。
顺便说一句,我发现在 tf.py_func 中,我无法返回字典。有没有办法做到这一点或解决方法?
我有如下所示的代码
def map_func(images, labels):
"""mapping python function"""
# do something
# cannot be expressed as a tensor graph
return {
'images': images,
'labels': labels,
'new_key': new_value}
def tf_py_func(images, labels):
return tf.py_func(map_func, [images, labels], [tf.uint8, tf.string], name='blah')
return dataset.map(tf_py_func)
===========================================================================
已经有一段时间了,我忘记我问过这个问题了。我以另一种方式解决了它,它是如此简单,以至于我觉得我几乎是个傻瓜。问题是:
tf.py_func 不能返回字典。
dataset.map 可以返回字典。
答案是:映射两次。
def map_func(images, labels):
"""mapping python function"""
# do something
# cannot be expressed as a tensor graph
return processed_images, processed_labels
def tf_py_func(images, labels):
return tf.py_func(map_func, [images, labels], [tf.uint8, tf.string], name='blah')
def _to_dict(images, labels):
return { 'images': images, 'labels': labels }
return dataset.map(tf_py_func).map(_to_dict)
MYYA
小唯快跑啊
相关分类