输入检查错误:期望 conv2d_1_input 具有形状 (3, 32, 32),但得到形状为 (32, 32, 3) 的数组。

3
我想训练CIFAR10数据集的CNN,但出现了以下错误:
检查输入时出错:期望conv2d_10_input的形状为(3, 32, 32),但得到的数组形状为(32, 32, 3)。
这是我的CNN模型链接
epochs = 10 batch_size = 32
model.fit(X_train,Y_train,validation_data =(X_test,Y_test),epochs = epochs,batch_size = batch_size,verbose = 1)。

将此处 'input_shape=(32, 32, 3)' 更改为其他值。 - Rahul Verma
1个回答

2

看起来数据集的格式是(高度, 宽度, 通道),但模型期望的格式是(通道, 高度, 宽度)。

我们可以使用tf.transpose()函数在这两种格式之间进行转换,该函数可以"切换"张量的维度。

要将单个图像张量从HWC格式转换为CHW格式,只需执行以下操作:

TO convert a single image tensor from HWC to CHW just do:

要将单个图像张量从HWC转换为CHW,只需执行以下操作:

reshaped = tf.transpose(image_tensor, (2,0,1))

要批量转换,您可以执行以下操作:

reshaped = tf.transpose(images_tensor, (0,3,1,2))

1
你可以设置 channels_last = False - WiseDev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接