来自_tensor_slices的张量流给出“args_0:0”

问题描述 投票:0回答:1

我正在尝试使用

from_tensor_slices
创建张量流数据集,但我传递的字符串在映射函数中变得混乱:

def test(x):
    print(x)
    return x

filenames=['a','b','c']


dataset = tf.data.Dataset.from_tensor_slices(filenames)
dd= dataset.map(test) 

该函数打印:

Tensor("args_0:0", shape=(), dtype=string)

当我尝试时:

print(next(dd.as_numpy_iterator()))

它给出了预期的

"a"
。但我想访问函数内部的字符串,以便它可以打开文件名。这是怎么回事? 我在这里找到了类似的答案: 打印张量时的“args_0:0” 但这并不具有启发性,也不是一个最小的例子。我也想知道解决办法
from_tensor_slices
我检查了
tf.executing_eagerly()
,它给出了 True。我的张量流版本是2.15.1。我宁愿不升级。

tensorflow tensorflow-datasets
1个回答
0
投票

我在这里找到了类似的答案: Tensorflow Dataset 打开多个文件并将它们分开

显然map中只能使用tensorflow函数。我不应该混合原生 python 或 numpy。因此,如果我将

print(x)
替换为
tf.print(x
),我的测试功能就会起作用。

© www.soinside.com 2019 - 2024. All rights reserved.