I'm trying to train my own images with CNN.
However, I split train/validation/test data, and run model. These are my code.
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)
As you can see, validation set works only at first time. How can I fix this?