#python #scikit-learn #neural-network
#python #scikit-learn #нейронная сеть
Вопрос:
Я намерен использовать MLPRegressor для набора данных кортежей on (x, y) для оценки y = f (x). Цель состоит в том, чтобы сохранять нейронную сеть после каждой эпохи во время обучения. Я хотел бы сделать анимацию, показывающую, как сеть улучшается в процессе обучения.
Есть ли способ, как это сделать, не переделывая исходный код? Когда я выполнял аналогичную задачу в разных случаях (например, оптимизация) Я просто использовал опцию обратного вызова, которая здесь недоступна.
Ответ №1:
Что-то вроде этого должно работать:
from sklearn import neural_network
m = neural_network.MLPRegressor()
# define data X, y
for j in m.max_iter:
m.partial_fit(X=x, y=y) # or m.fit(X=x, y=y, incremental=True)
# <your code after each training increment>
partial_fit
похоже, он предназначен для этого случая. В документах говорится: «Обновите модель одной итерацией по заданным данным». Ранняя остановка может вызвать ошибку или предупреждение, но с ней должно быть легко справиться.
Комментарии:
1. Большое спасибо, это действительно помогло мне.
2. если вам нужно «более приятное» решение, вы можете подклассировать модель и добавить функцию обратного вызова к
fit
методу