Google Colab Tensorflow 模型未使用 epoch 中的所有样本
Google Colab Tensorflow model not using all samples in epochs
我的训练数据有 10680 个样本,我设置了这样的拟合:
model.fit(X, y, batch_size=32, epochs=5, verbose=1, validation_split=0.1)
这意味着它应该使用 90% 来训练(9612 个样本),另外 10% 来检查,对吗?
但是当我尝试 运行 时,显示的时期是:
Epoch 1/5
301/301 [==============================] - 25s 85ms/step - loss: nan - accuracy: 0.4999 - val_loss: nan - val_accuracy: 0
它仅使用 301 个样本来拟合。
我做错了什么或没有看到这里?
我知道这是不对的,因为它只工作了一次(9612 个样本)。
这是型号:
keras.utils.normalize(X)
model = Sequential()
model.add(Conv2D(128, (3,3), input_shape = X.shape[1:]))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Conv2D(128, (3,3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Flatten()) # Converts 3D feature maps to 1D feature vectors
model.add(Dense(128, kernel_regularizer= tf.keras.regularizers.l2(5e-5)))
model.add(Activation("relu"))
model.add(Dense(1, kernel_regularizer=tf.keras.regularizers.l2(5e-5)))
model.add(Activation("sigmoid"))
sgd = tf.keras.optimizers.SGD(lr=0.001, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss="binary_crossentropy",
optimizer=sgd,
metrics=['accuracy'])
model.summary()
我认为那里的301是批次数,所以既然你有9612条数据,设置batch_size=32
,那么批次数应该是9612 / 32 = 300.375 -> 301
我的训练数据有 10680 个样本,我设置了这样的拟合:
model.fit(X, y, batch_size=32, epochs=5, verbose=1, validation_split=0.1)
这意味着它应该使用 90% 来训练(9612 个样本),另外 10% 来检查,对吗?
但是当我尝试 运行 时,显示的时期是:
Epoch 1/5
301/301 [==============================] - 25s 85ms/step - loss: nan - accuracy: 0.4999 - val_loss: nan - val_accuracy: 0
它仅使用 301 个样本来拟合。
我做错了什么或没有看到这里?
我知道这是不对的,因为它只工作了一次(9612 个样本)。
这是型号:
keras.utils.normalize(X)
model = Sequential()
model.add(Conv2D(128, (3,3), input_shape = X.shape[1:]))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Conv2D(128, (3,3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Flatten()) # Converts 3D feature maps to 1D feature vectors
model.add(Dense(128, kernel_regularizer= tf.keras.regularizers.l2(5e-5)))
model.add(Activation("relu"))
model.add(Dense(1, kernel_regularizer=tf.keras.regularizers.l2(5e-5)))
model.add(Activation("sigmoid"))
sgd = tf.keras.optimizers.SGD(lr=0.001, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss="binary_crossentropy",
optimizer=sgd,
metrics=['accuracy'])
model.summary()
我认为那里的301是批次数,所以既然你有9612条数据,设置batch_size=32
,那么批次数应该是9612 / 32 = 300.375 -> 301