Передача обучения на нескольких данных / персонализированные общие модели керас - PullRequest
1 голос
/ 24 апреля 2020

У меня проблема с нейронной сетью. Я обучил его для общих данных, и работает довольно хорошо. Но теперь я хотел бы улучшить сеть с новыми персонализированными данными.

Я пытаюсь объяснить .. Моя модель является общей, и я использую ее для одного отдельного X. Но со временем я получу больше данных от X, и я хотел бы улучшить общую модель для X. Для Например, каждый раз, когда я получаю 3 новых данных, могу ли я соответствовать только 1 эпохе?

Или мне следует использовать динамическую кластеризацию (если это возможно) и поместить ее на вход моей сети?

Я действительно не знаю, что делать, и мне нужна помощь .. Спасибо!

1 Ответ

0 голосов
/ 24 апреля 2020

Я не уверен, какая у вас модель, но в целом вы можете обучить модель с вашими данными, а затем сохранить модель, используя model.save, который сохраняет все (архитектура, состояние оптимизатора, веса и смещения и т. Д. c).

# saving the model in tensorflow format
model.save('./MyModel_tf',save_format='tf')

Если у вас есть новые данные, вы можете загрузить модель, используя tf.keras.model.load_model, и переобучить ее для обновления параметров. Если ваша модель не занимает много времени, лучше добавить новые данные в существующую обучающую папку. Вы также можете использовать некоторое увеличение данных для улучшения производительности.

# loading the saved model
loaded_model = tf.keras.models.load_model('./MyModel_tf')

# retraining the model
loaded_model.fit(x_new_data, y_new_data, epochs = 10, validation_data = (x_test,y_test),verbose=1)

Вы можете проверить этот пример для переобучения модели, где вы оставили. Вы можете обновить некоторые гиперпараметры и запустить перезагруженную модель для повышения производительности. Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...