这可能是一个愚蠢的问题,但希望有人告诉我是或不是。
假设我在Tensorflow中有一个LSTM网络,并且正在使用Adam Optimizer训练它,通过在训练期间为X和Y变量提供一组X和Y dict来最小化成本函数,然后在同一会话中,为变量提供新的X和Y dict以进行测试,Tensorflow是自动使用在训练期间找到的最佳模型(即使用在训练期间带来最低成本值的权重),还是仅使用其运行中的最新模型(即最新的时期)?
想知道当达到新的较低成本值时,是否需要设置model.saver函数来捕获最佳模型,关闭当前会话,然后使用保存的模型重新打开一个新模型,或者是否可以假设,当我在与训练相同的会话中进行测试时,它将使用最佳模型。
谢谢!
发布于 2019-11-05 12:46:43
事实并非如此。
该模型依赖于一组权重,这些权重是变量。您可以使用保存程序存储最佳模型,并将训练进度保存为单独的检查点。
其他选择是拥有一组重复的变量,并在找到更好的模型后复制权重。
然而,判断一个模型在X时期是否比Y时期更好通常是不常见的,因为训练精度可能会产生误导(读作:过拟合)。因此,人们通常在每个时期之后评估模型,如果在评估过程中性能变得更好,则保存检查点。这样就不需要维护同一模型的多个副本。
https://stackoverflow.com/questions/58704575
复制相似问题