【发布时间】:2021-03-17 21:52:39
【问题描述】:
我有一个维度为 (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 模型?
【问题讨论】:
标签: python numpy tensorflow google-colaboratory reshape