2
votes

I've been trying to save and reupload a model and whenever I do that the accuracy always goes down.

model = tf.keras.Sequential()
model.add(tf.keras.layers.Conv2D(64, kernel_size=3, activation='relu', input_shape=(IMG_SIZE,IMG_SIZE,3)))
model.add(tf.keras.layers.Conv2D(32, kernel_size=3, activation='relu'))
model.add(tf.keras.layers.Flatten())
model.add(tf.keras.layers.Dense(len(SURFACE_TYPES), activation='softmax'))

model.compile(loss='sparse_categorical_crossentropy',
              optimizer='adam',
              metrics=['acc'])

history = model.fit(
      train_ds, 
      validation_data=val_ds,
      epochs=EPOCHS,
      validation_steps=10)

Output:

Epoch 1/3 84/84 [==============================] - 2s 19ms/step - loss: 1.9663 - acc: 0.6258 - val_loss: 0.8703 - val_acc: 0.6867

Epoch 2/3 84/84 [==============================] - 1s 18ms/step - loss: 0.2865 - acc: 0.9105 - val_loss: 0.4494 - val_acc: 0.8667

Epoch 3/3 84/84 [==============================] - 1s 18ms/step - loss: 0.1409 - acc: 0.9574 - val_loss: 0.3614 - val_acc: 0.9000

This followed by running these commands to produce outputs result in the same training loss but different training accuracies. The weights and structures of the models are also identical.

model.save("my_model2.h5")
model2 = load_model("my_model2.h5")

model2.evaluate(train_ds)
model.evaluate(train_ds)

Output:

84/84 [==============================] - 1s 9ms/step - loss: 0.0854 - acc: 0.0877

84/84 [==============================] - 1s 9ms/step - loss: 0.0854 - acc: 0.9862

[0.08536089956760406, 0.9861862063407898]

1

1 Answers

-1
votes

i have shared reference link click here

it has all formats to save & load your model