【tensorflow】Input to reshape is a tensor with xxxx values, but the requested shape has xxxx values

tech2022-07-14  169

运行tensorflow程序时,出现下图所示错误:

经过查找资料发现,是在用tf.decode_raw()函数对数据进行解析时出现了错误。

tf.decode_raw()是对编码为字符串的数据变量进行转换。生成tfrecord数据时,一般使用tostring()函数,将数据转换为字符串的形式保存到tfrecord文件中。之后如果要读取原始数据,需要使用decord_raw()对数据进行解析。需要注意的是,在使用decord_raw()时需要指定原始数据的类型。 原始数据是什么类型解析时也必须是什么类型,否则会出现形状的不对应问题。

例如原始数据是tf.float64类型,转换为字符串保存在tfrecord文件中。但是使用tf.decode_raw()进行解析时指定了tf.float32类型。那么程序运行就会报出:Input to reshape is a tensor with xxxx values, but the requested shape has xxxx values这种错误。

错误代码:

pose = tf.decode_raw(features['pose'],tf.float32) pose = tf.reshape(tf.cast(pose,tf.float32),[4,4])

修正如下:

pose = tf.decode_raw(features['pose'],tf.float64) pose = tf.reshape(tf.cast(pose,tf.float32),[4,4])
最新回复(0)