Хранение и использование обученной нейронной сети

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

Насколько я понял, я тренирую свою нейронную сеть с помощью тренировочного набора и проверяю его с помощью тестового набора.

Когда я удовлетворен своими результатами, я могу использовать свою нейронную сеть для прогнозирования новых значений, а сама нейронная сеть - это, в основном, все веса, которые я скорректировал с помощью своих тренировочных наборов.

Это правильно?

Если это так, я должен обучить свою сеть только один раз, а затем просто использовать свою сеть (весовые коэффициенты) для прогнозирования будущих значений. Как вы обычно избегаете пересчета всей сети? Должен ли я сохранить все веса в базе данных или что-то в этом роде, чтобы я всегда мог получить к нему доступ, не тренируясь снова?

Если мое понимание правильное, я могу извлечь выгоду из сложных вычислений на выделенном компьютере (например, суперкомпьютере), а затем просто использовать свою сеть на веб-сервере, в приложении для iPhone или чем-то в этом роде, но я не знаю, как хранить Это.

1 ответ

Чтобы сделать вашу нейронную сеть постоянной, вы можете pickle Это. Вам не нужно пересчитывать вес обученной протравленной сети, и все, что вам нужно сделать, - это разомкнуть сеть и использовать ее для новых прогнозов.

Есть библиотеки вроде joblib это может быть использовано для более эффективной сериализации / травления.

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