我正在尝试开发一个神经网络来预测时间序列。
据我了解,我正在使用训练集训练我的神经网络并用测试集验证它。
当我对我的结果感到满意时,我可以使用我的神经网络预测新值,而神经网络本身基本上只是我使用训练集调整的所有权重。
这是对的吗?
如果是这样,我应该只培训一次网络,然后只使用我的网络(权重)来预测未来的价值。您通常如何避免重新计算整个网络?我是否应该将所有权重保存在数据库或其他内容中,以便我可以随时访问它而无需再次训练?
如果我的理解是正确的,我可以在专用计算机(例如超级计算机)上进行大量计算,然后在网络服务器,iPhone应用程序或类似的东西上使用我的网络,但我不知道如何储存它。
答案 0 :(得分:2)
要使您的神经网络持久,您可以pickle
它。您不需要重新计算训练腌制网络的权重,您所需要做的就是取消网络连接并使用它来进行新的预测。
像joblib
这样的库可以用于更有效的序列化/酸洗。
是否重新训练NN的问题并非微不足道。这取决于您使用网络的具体内容;说Reinforcement learning可能要求你重新培养新的信念。但在某些情况下,也可能在这种情况下,只需一次使用训练有素的网络,或者在将来有更多现场数据的情况下重新训练。