Python 将数据集的维数从(32,32,310000)更改为(10000,32,32,3),用于训练CNN

Python 将数据集的维数从(32,32,310000)更改为(10000,32,32,3),用于训练CNN,python,numpy,tensorflow,google-colaboratory,reshape,Python,Numpy,Tensorflow,Google Colaboratory,Reshape,我有一个维度为(32,32,3,10000)的训练数据集,测试数据集的维度为(32,32,3,1000)。我试图建立一个cnn模型来预测图像。我在建筑下面试过 model = keras.Sequential(layers = [ keras.layers.Conv2D(32, kernel_size = (3,3), input_shape=(32,32,3)), keras.layers.Conv2D(32, kernel_size = (3,3), padding='same'

我有一个维度为(32,32,3,10000)的训练数据集,测试数据集的维度为(32,32,3,1000)。我试图建立一个cnn模型来预测图像。我在建筑下面试过

  model = keras.Sequential(layers = [
  keras.layers.Conv2D(32, kernel_size = (3,3), input_shape=(32,32,3)),
  keras.layers.Conv2D(32, kernel_size = (3,3), padding='same',activation='relu'),
  keras.layers.MaxPool2D(pool_size=(2,2), strides=2, padding='valid'),
  keras.layers.Flatten(),
  keras.layers.Dense(units = 32, activation='relu'),
  keras.layers.Dense(units = 32, activation='softmax')
])


model.compile(optimizer='adam', loss = 'sparse_categorical_crossentropy', metrics=['acc'])

history = model.fit(train_images, train_label, batch_size=10, epochs=3, verbose=1, validation_data=(test_images, test_label))
然后它给了我一个错误

 ValueError: Data cardinality is ambiguous:
  x sizes: 32
  y sizes: 10000
Please provide data which shares the same first dimension.
然后,我尝试通过改变拟合线来重塑列车和测试数据,如下所示

history = model.fit(train_images.reshape(10000,32,32,3), train_label, batch_size=10, epochs=5, verbose=1, validation_data=(test_images.reshape(1000,32,32,3), test_label))
然后程序运行,但我感到困惑的是,当我试图从数据集中绘制图像时,它显示如下

重塑数据集有什么问题?
如何使用此数据集制作cnn模型?

您需要转置,而不是重塑:

train_images.transpose([3, 0, 1, 2])
重塑以批量方式获取所有数据,并开始更改每个维度的元素数量。转置更改维度的层次结构,但将数据保存到位。详细说明: