我正在使用tfhub运行BERT模型,类似于仓库中分享的示例。我发现在第400步时训练损失最小,之后在创建最后一个检查点时略有提高。对于验证集,模型从最后一个创建的检查点(即第636步)加载,但我想手动从第400步加载模型,以便获得更好的模型参数并提高我的准确性。
为了实现这一点,我应该对函数做哪些更改?
这是在步骤636创建最后一个检查点时的损失:
这是在步骤400创建检查点时的损失:
因此,在验证集上运行模型时,我想从第400步的检查点加载模型,而不是从第500步加载。
请帮助我解决这个问题,这样至少可以提高我的模型性能3-5%。
4条答案
按热度按时间pgvzfuti1#
你是否能解决这个问题?如果可以,请告诉我。
vcirk6k62#
你可以在estimator.predict中手动输入你想要加载的检查点。希望这对你有帮助。
ehxuflar3#
你能告诉我是否有办法根据评估损失来存储最佳模型吗?因为这段代码是基于检查点来存储的。
bprjcwpo4#
请告诉我是否有办法根据评估损失来存储最佳模型,因为这段代码是基于检查点的。
尽管我尝试过,但找不到解决方案,因为我是TensorFlow的初学者。但是在浏览kaggle上的仓库时,我找到了一个使用Keras的实现,可能对你有用。
https://www.kaggle.com/xhlulu/disaster-nlp-keras-bert-using-tfhub
由于它使用了功能API,你可以轻松地为保存最佳模型添加回调。