Лучшая модель в AutoKeras
Возник вопрос в воспроизводимости результатов лучшей модели из AutoKeras. Например, создаю такой объект класса AutoKeras:
import autokeras as ak
train_set = tf.data.Dataset.from_tensor_slices((X_train, Y_train))
test_set = tf.data.Dataset.from_tensor_slices((X_test, Y_test))
reg = ak.StructuredDataRegressor(max_trials=10, overwrite=True, project_name="AutoKeras")
story = reg.fit(train_set, epochs=200)
predicted_y = reg.predict(test_set)
print(reg.evaluate(test_set))
Можно получить инфу о лучшей модели:
best_model = reg.export_model()
best_model.summary()
Что-то типа такого:
Model: "model"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_1 (InputLayer) [(None, 6)] 0
multi_category_encoding (Mu (None, 6) 0
ltiCategoryEncoding)
normalization (Normalizatio (None, 6) 13
n)
dense (Dense) (None, 32) 224
re_lu (ReLU) (None, 32) 0
regression_head_1 (Dense) (None, 4) 132
=================================================================
Total params: 369
Trainable params: 356
Non-trainable params: 13
Далее хочу я вновь обучить такую же модель на этих же данных. Для этого решил взять файлы из созданной автокерасом папки:
model = keras.models.load_model('AutoKeras46/best_model')
model.summary()
fitting = model.fit(train_set, epochs=200)
fit46_new = pd.DataFrame(fitting.history)
new_model.evaluate(test_set)
Результат вообще странный получился.
Решил сохранить модель в h5 файл и запустить:
h5_model46 = keras.models.load_model("my_h5_model_46.h5")
h5_fitted = h5_model46.fit(train_set, epochs=200)
h5_model46.evaluate(test_set)
В общем, я ожидал, что кривые loss и accuracy для одинакового числа эпох и для тех же данных будут похожими, но что-то пошло не так. Подскажите, стоит ли вообще ожидать в таком случае одинаковое поведение вышеупомянутых кривых или нет?
Источник: Stack Overflow на русском