我正在尝试tf.data.Dataset使用以下代码将 numpy 数组转换为 a:
train_dataset = tf.data.Dataset.from_tensor_slices((traininput, train[:, :, :, 1:4]))
但是,我的数据集现在缺少它的第一个维度。numpy 数组都具有 1000、128、128、3 的形状,并且数据集缩减为 128、128、3 的形状。这会在尝试训练我的模型时导致错误:检查输入时出错:expected input_2 to have 4 dimensions, but got array with shape (128, 128, 3) 我已尝试根据加载 numpy 数据的 tensorflow 教程工作。为什么会发生这种情况,我该如何解决?
正如建议的那样,我在下面提供了一个 mcve:
import tensorflow as tf
import numpy as np
inp = np.random.rand(100, 128, 128, 3)
out = np.random.rand(100, 126, 126, 3)
model = tf.keras.Sequential(
[
tf.keras.layers.InputLayer(input_shape=(128, 128, 3)),
tf.keras.layers.Conv2D(
filters=32, kernel_size=3, strides=(2, 2), activation='relu'),
tf.keras.layers.Conv2DTranspose(
filters=3,
kernel_size=3,
strides=(2, 2),
padding="SAME",
activation='relu'),
]
)
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
train_dataset = tf.data.Dataset.from_tensor_slices((inp, out))
model_history = model.fit(train_dataset, epochs=10)
它以:Error when checking input: expected input_1 to have 4 dimensions, but got array with shape (128, 128, 3)
噜噜哒
ibeautiful
相关分类