提一个机器学习PAI问题:在ODPS使用训练好的DSSM负采样版本,(指定保存好的.pb模型文件的路径)对比( 指定保存好的.pb模型文件 + 指定checkpoint_path )在同样的数据集上进行evaluate,效果差别非常大,请问这个的主要原因是什么呢?
你加不加评估的不是同一个模型,优先使用checkpoint_path,没有checkpoint_path才使用model_dir
说错了,export是可以用checkpoint_path的
checkpoint_path 优先级 比 model_dir 高
代码在这里,也可以参考代码里面看一下:
https://github.com/alibaba/EasyRec/blob/master/easy_rec/python/main.py#L387
https://github.com/alibaba/EasyRec/blob/master/easy_rec/python/main.py#L674
https://github.com/alibaba/EasyRec/blob/master/easy_rec/python/main.py#L718,此回答整理自钉群“【EasyRec】推荐算法交流群”
主要原因可能是不同的模型路径和checkpoint路径导致了模型的差异。在ODPS中使用训练好的DSSM负采样版本时,可以通过指定模型文件的路径来获取使用该模型进行训练的数据集。但是,在进行evaluate时,需要使用指定的checkpoint路径来加载模型,这样才能获得更好的性能和结果。
也可能是数据集本身的问题导致的。在使用不同的模型路径和checkpoint路径进行evaluate时,数据集中的数据可能会被不同的模型解释,从而导致不同的结果。因此,建议使用相同的数据集和模型路径进行evaluate,以获得更好的性能和结果
---人工智能平台 PAI模型指标文档
在使用训练好的 DSSM 负采样版本在 ODPS 上进行评估时,指定保存好的 .pb
模型文件路径和指定保存好的 .pb
模型文件加上 checkpoint_path
进行评估会导致差别非常大的主要原因可能有以下几点:
参数加载:当只指定 .pb
模型文件路径进行评估时,模型参数已经被固定在 .pb
文件中,不再进行任何更新。而当同时指定 .pb
模型文件和 checkpoint_path
时,模型会加载指定的 .pb
文件作为初始参数,然后再从 checkpoint_path
中加载训练过程中保存的最新参数。这意味着模型在评估时会使用更新的参数,可能会得到更好的性能。
模型状态:指定 checkpoint_path
会使模型处于恢复状态,它会根据训练过程中保存的最新参数进行评估。而仅使用 .pb
模型文件进行评估时,模型处于静态状态,不会随着训练进度的更新而变化。因此,在使用 checkpoint_path
进行评估时,模型可能具有更好的适应能力和泛化能力。
训练过程中的改进:如果您使用了提前停止(early stopping)等训练技巧,训练过程中的模型可能会在性能上有所改进。这些改进只会在指定 checkpoint_path
后才能体现出来。而仅使用 .pb
模型文件进行评估时,这些改进无法被利用。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。