Лучшая модель в AutoKeras

Рейтинг: 0Ответов: 0Опубликовано: 21.03.2023

Возник вопрос в воспроизводимости результатов лучшей модели из 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 для одинакового числа эпох и для тех же данных будут похожими, но что-то пошло не так. Подскажите, стоит ли вообще ожидать в таком случае одинаковое поведение вышеупомянутых кривых или нет? введите сюда описание изображения

Ответы

Ответов пока нет.