tf.data.Dataset 迭代器返回 Tensor("IteratorGetNext:1", shape=(None, 16), dtype=int32) 但无法获取张量的值

2024-05-02

我正在尝试编写一个自定义模型,其中我正在编写一个自定义train_step功能

我正在从自定义数据生成器创建“tf.data.Dataset”,例如

tds = tf.data.Dataset.from_generator(tdg.__iter__,args=None,output_types = (tf.float32,tf.int32),output_shapes = (tf.TensorShape([16,64,64,3]),tf.TensorShape([16])))
tds = tds.batch(1)

在自定义数据生成器中__iter__方法定义为

def __iter__(self):
    for item in (self[i] for i in range(len(self))):
        yield item

但是,当我尝试检索里面的数据时train_step功能, 和x,y = data我正进入(状态

Tensor("IteratorGetNext:0", shape=(None, 16, 64, 64, 3), dtype=float32)

and

Tensor("IteratorGetNext:1", shape=(None, 16), dtype=int32)作为输出

如果我跑print(x[0])然后我得到

Tensor("strided_slice:0", shape=(16,), dtype=int32)

我没有得到张量numpy()属性

这是哪里出了问题??


这适用于tf.data

for data_batch, label in tfds:
    print(image_batch.numpy().shape)
    for data in data_batch:
         print(image.numpy().shape)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tf.data.Dataset 迭代器返回 Tensor("IteratorGetNext:1", shape=(None, 16), dtype=int32) 但无法获取张量的值 的相关文章

随机推荐