我必须向mnist图像数据集添加一行1,该数据集被批处理为32个样本。下面的代码是:
(mnist_images, mnist_labels), _ = tf.keras.datasets.mnist.load_data()
dataset = tf.data.Dataset.from_tensor_slices(
(tf.cast(mnist_images[...,tf.newaxis]/255, tf.float32),
tf.cast(mnist_labels,tf.int64)))
dataset = dataset.shuffle(1000).batch(32)
for images,labels in dataset.take(1):
print("Logits: ", mnist_model(images[0:1]).numpy())
b =tf.reshape(images, [784,32], tf.float32)
c = tf.concat(b,tf.ones([1,32], tf.float32),0)
我得到以下错误,但都是dtype float 32,
ValueError: Tensor conversion requested dtype int32 for Tensor with dtype float32: <tf.Tensor:
shape=(1, 32), dtype=float32, numpy= array([[1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,1., 1., 1., 1.,
1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.]],
dtype=float32)>
是否有另一种方法来添加一行到图像张量?
你好像忘记用括号了- [].
使用:
c = tf.concat([b,tf.ones([1,32], tf.float32)],0)
代替:
c = tf.concat(b,tf.ones([1,32], tf.float32),0)