gpt4 book ai didi

python - 有没有办法在 tf.data.Dataset w/tf.py_func 中传递字典?

转载 作者:太空宇宙 更新时间:2023-11-04 02:02:40 24 4
gpt4 key购买 nike

我在数据处理中使用 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)

============================================= ============================

好久没问这个问题了。我用另一种方法解决了它,它是如此简单,以至于我觉得自己几乎是个傻瓜。问题是:

  1. tf.py_func 无法返回字典。
  2. 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)

最佳答案

您可以将字典转换为一个字符串,您可以返回该字符串,然后将其拆分为一个字典。

这看起来像这样:

return (images + " " + labels + " " + new value)

然后在你的其他函数中:

l = map_func(image, label).split(" ")
d['images'] = l[0]
d[
...

关于python - 有没有办法在 tf.data.Dataset w/tf.py_func 中传递字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55411666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com