tf.data.Dataset迭代器返回Tensor“ IteratorGetNext:1”,shape =None,16,dtype = int32,但无法获取Tensors的值

问题描述

我试图编写一个自定义模型,在其中编写自定义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,3]),tf.TensorShape([16])))
tds = tds.batch(1)

自定义DataGenerator中,__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,3),dtype=float32)

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

如果我运行print(x[0]),那么我会得到

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

我没有获得具有numpy()属性的张量

哪里出问题了?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)