我正在尝试创建一个简单的CNN来对MNIST数据集中的图像进行分类。模型达到了可接受的准确率,但我注意到模型在每个周期中只训练了1875张图片。这可能是什么原因造成的?如何解决这个问题?
model=models.Sequential()model.add(layers.Conv2D(filters=32,kernel_size=(3,3),activation='relu',input_shape=(28,28,1)))model.add(layers.MaxPooling2D((2,2)))model.add(layers.Conv2D(filters=64,kernel_size=(3,3),activation='relu'))model.add(layers.MaxPooling2D((2,2)))model.add(layers.Conv2D(filters=64,kernel_size=(3,3),activation='relu'))model.add(layers.Flatten())model.add(layers.Dense(64,activation='relu'))model.add(layers.Dense(10,activation='softmax'))Model: "sequential"_________________________________________________________________Layer (type) Output Shape Param # =================================================================conv2d (Conv2D) (None, 26, 26, 32) 320 _________________________________________________________________max_pooling2d (MaxPooling2D) (None, 13, 13, 32) 0 _________________________________________________________________conv2d_1 (Conv2D) (None, 11, 11, 64) 18496 _________________________________________________________________max_pooling2d_1 (MaxPooling2 (None, 5, 5, 64) 0 _________________________________________________________________conv2d_2 (Conv2D) (None, 3, 3, 64) 36928 _________________________________________________________________flatten (Flatten) (None, 576) 0 _________________________________________________________________dense (Dense) (None, 64) 36928 _________________________________________________________________dense_1 (Dense) (None, 10) 650 =================================================================Total params: 93,322Trainable params: 93,322Non-trainable params: 0
model.compile(optimizer=’adam’,loss=’sparse_categorical_crossentropy’,metrics=[‘accuracy’])
model.fit(train_images,train_labels,epochs=5)
Epoch 1/51875/1875 [==============================] - 55s 29ms/step - loss: 0.0760 - accuracy: 0.9776Epoch 2/51875/1875 [==============================] - 54s 29ms/step - loss: 0.0576 - accuracy: 0.9825Epoch 3/51875/1875 [==============================] - 55s 29ms/step - loss: 0.0454 - accuracy: 0.9862Epoch 4/51875/1875 [==============================] - 55s 29ms/step - loss: 0.0396 - accuracy: 0.9879Epoch 5/51875/1875 [==============================] - 55s 29ms/step - loss: 0.0336 - accuracy: 0.9900<tensorflow.python.keras.callbacks.History at 0x7f3e0ff43b70>
回答:
训练没有问题。模型是在每个包含32张图片的1875个批次上训练的,而不是1875张图片。
1875*32 = 60000张图片