model.fit 时 CNN 验证数据集不起作用
CNN validation dataset doesn't work while model.fit
我正在尝试使用 CNN 训练自己的图像。
但是,我拆分了 train/validation/test 数据和 运行 模型。
这些是我的代码。
print("train images : {} / train labels : {}".format(train_image.shape, train_label.shape))
print("val images : {} / val labels : {}".format(val_image.shape, val_label.shape))
print("test images : {} / test labels : {}".format(test_image.shape, test_label.shape))
train images : (504, 255, 255, 3) / train labels : (504,)
val images : (127, 255, 255, 3) / val labels : (127,)
test images : (158, 255, 255, 3) / test labels : (158,)
import tensorflow as tf
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(16, (3,3), activation='relu', input_shape=(255, 255, 3)),
tf.keras.layers.MaxPooling2D(2,2),
tf.keras.layers.Conv2D(32, (3,3), activation='relu'),
tf.keras.layers.MaxPooling2D(2,2),
tf.keras.layers.Conv2D(64, (3,3), activation='relu'),
tf.keras.layers.MaxPooling2D(2,2),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(512, activation='relu'),
tf.keras.layers.Dense(1, activation='sigmoid')
])
model.summary()
from tensorflow.keras.optimizers import RMSprop
model.compile(optimizer=RMSprop(lr=0.001),
loss='binary_crossentropy',
metrics = ['accuracy'])
history = model.fit(train_image, train_label,
epochs=100,
validation_data = (val_image, val_label),
validation_steps=50,
verbose=2)
如您所见,验证集仅在第一次起作用。
我该如何解决这个问题?
我正在尝试使用 CNN 训练自己的图像。
但是,我拆分了 train/validation/test 数据和 运行 模型。 这些是我的代码。
print("train images : {} / train labels : {}".format(train_image.shape, train_label.shape))
print("val images : {} / val labels : {}".format(val_image.shape, val_label.shape))
print("test images : {} / test labels : {}".format(test_image.shape, test_label.shape))
train images : (504, 255, 255, 3) / train labels : (504,)
val images : (127, 255, 255, 3) / val labels : (127,)
test images : (158, 255, 255, 3) / test labels : (158,)
import tensorflow as tf
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(16, (3,3), activation='relu', input_shape=(255, 255, 3)),
tf.keras.layers.MaxPooling2D(2,2),
tf.keras.layers.Conv2D(32, (3,3), activation='relu'),
tf.keras.layers.MaxPooling2D(2,2),
tf.keras.layers.Conv2D(64, (3,3), activation='relu'),
tf.keras.layers.MaxPooling2D(2,2),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(512, activation='relu'),
tf.keras.layers.Dense(1, activation='sigmoid')
])
model.summary()
from tensorflow.keras.optimizers import RMSprop
model.compile(optimizer=RMSprop(lr=0.001),
loss='binary_crossentropy',
metrics = ['accuracy'])
history = model.fit(train_image, train_label,
epochs=100,
validation_data = (val_image, val_label),
validation_steps=50,
verbose=2)
如您所见,验证集仅在第一次起作用。 我该如何解决这个问题?