Python 在sklearn中训练神经网络时,如何保存学习进度?

Python 在sklearn中训练神经网络时,如何保存学习进度?,python,scikit-learn,neural-network,Python,Scikit Learn,Neural Network,我的意图是使用MLPrePressor对(x,y)元组数据集进行处理,以估计y=f(x)。目标是在学习过程中的每个历元之后保存神经网络。我想制作一个动画,展示网络在学习过程中是如何变得更好的 有没有办法在不修改源代码的情况下做到这一点?当我在不同场合执行类似任务(f.e.优化)时,我只是使用了此处不可用的回调选项。类似的操作应该可以: from sklearn import neural_network m = neural_network.MLPRegressor() # define dat

我的意图是使用MLPrePressor对(x,y)元组数据集进行处理,以估计y=f(x)。目标是在学习过程中的每个历元之后保存神经网络。我想制作一个动画,展示网络在学习过程中是如何变得更好的


有没有办法在不修改源代码的情况下做到这一点?当我在不同场合执行类似任务(f.e.优化)时,我只是使用了此处不可用的回调选项。

类似的操作应该可以:

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>
来自sklearn的
导入神经网络
m=神经网络.mlprepressor()
#定义数据X,y
对于m.max_iter中的j:
m、 部分拟合(X=X,y=y)或m.fit(X=X,y=y,增量=True)
# 

partial_fit
似乎是为这种情况而设计的。文档上写着:“在给定数据上用一次迭代更新模型。”提前停止可能会导致错误或警告,但应该很容易处理。

类似的方法应该可以:

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>
来自sklearn的
导入神经网络
m=神经网络.mlprepressor()
#定义数据X,y
对于m.max_iter中的j:
m、 部分拟合(X=X,y=y)或m.fit(X=X,y=y,增量=True)
# 

partial_fit
似乎是为这种情况而设计的。文档上写着:“在给定数据上用一次迭代更新模型。”提前停止可能会导致错误或警告,但应该很容易处理。

非常感谢,这确实帮助了我。如果你想要一个“更好”的解决方案,你可以对模型进行子类化,并向
fit
方法添加回调函数非常感谢,这确实帮助了我。如果你想要一个“更好”的解决方案,你可以对模型进行子类化,并在
fit
方法中添加一个回调函数