我正在使用专业版的Google colab笔记本执行CNN。尽管x_train的形状为(60,000,28,28)。该模型仅在1875行上接受训练。有人遇到过这个问题吗?我的模型在本地计算机的jupyter笔记本上运行良好。它可以在所有60,000行上运行
import tensorflow as tf
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.astype('float32') / 255.0
y_train = y_train.astype('float32') / 255.0
print("x_train.shape:", x_train.shape)
#Build the model
from tensorflow.keras.layers import Dense, Flatten, Dropout
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28,28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
])
r = model.fit(x_train, y_train, validation_data=(x_test,y_test), epochs = 10)
Output:
x_train.shape: (60000, 28, 28)
Epoch 1/10
1875/1875 [==============================] - 3s 2ms/step - loss: 2.2912e-06 - accuracy: 0.0987 - val_loss: 7716.5078 - val_accuracy: 0.0980
答案 0 :(得分:3)
1875是许多批次。默认情况下,批次包含32个样本。
60000/32 = 1875
答案 1 :(得分:0)
如果您使用keras
,而不是tensorflow.keras
,则日志将显示:
x_train.shape: (60000, 28, 28)
Train on 60000 samples, validate on 10000 samples
Epoch 1/10
60000/60000 [==============================] - 6s 107us/step - loss: 0.9655 - val_loss: 20.2422
但是它们在内部都是相同的,一个在显示要训练的样本数(keras
),另一个在显示迭代数(tf.keras
)。
您可能无法一次训练所有60000个样本,我们需要对输入进行批处理,以免出现GPU内存不足的情况。您可以尝试尽可能多地增加batch_size
,但是在此之后,您会收到诸如OOMError,CUDA内存不足之类的错误。