Après l'appel de la fonction fit je peux voir que le modèle de convergence dans la formation, mais après je vais appeler la méthode evaluate il agit comme si le modèle n'a pas fait le montage à tous. Le meilleur exemple ci-dessous où j'utilise le générateur de formation pour former et de validation et d'obtenir des résultats différents.
import tensorflow as tf
from tensorflow.keras.callbacks import ModelCheckpoint
from ImageGenerator import ImageGenerator
if __name__== "__main__":
batch_size=64
train_gen = ImageGenerator('synthetic3/train/open/*.png', 'synthetic3/train/closed/*.png', batch_size=batch_size)
model = tf.keras.applications.mobilenet_v2.MobileNetV2(weights=None, classes=2, input_shape=(256, 256, 3))
model.compile(optimizer='adam',
loss=tf.keras.losses.CategoricalCrossentropy(),
metrics=['accuracy'])
history = model.fit(
train_gen,
validation_data=train_gen,
epochs=5,
verbose=1
)
model.evaluate(train_gen)
Résultats
Epoch 1/5
19/19 [==============================] - 11s 600ms/step - loss: 0.7707 - accuracy: 0.5016 - val_loss: 0.6932 - val_accuracy: 0.5016
Epoch 2/5
19/19 [==============================] - 10s 533ms/step - loss: 0.6991 - accuracy: 0.5855 - val_loss: 0.6935 - val_accuracy: 0.4975
Epoch 3/5
19/19 [==============================] - 10s 509ms/step - loss: 0.6213 - accuracy: 0.6637 - val_loss: 0.6932 - val_accuracy: 0.4992
Epoch 4/5
19/19 [==============================] - 10s 514ms/step - loss: 0.4407 - accuracy: 0.8158 - val_loss: 0.6934 - val_accuracy: 0.5008
Epoch 5/5
19/19 [==============================] - 10s 504ms/step - loss: 0.3200 - accuracy: 0.8643 - val_loss: 0.6949 - val_accuracy: 0.5000
19/19 [==============================] - 3s 159ms/step - loss: 0.6953 - accuracy: 0.4967
C'est problématique parce que même lors de l'enregistrement de poids, il enregistre comme si le modèle n'a pas fait le montage.