机器学习PAI用easyrec组件化实现模型,加载下来用相同的样本输入多次,是有什么随机过程吗?[阿里云机器学习PAI]

请教下机器学习PAI用easyrec组件化实现模型,加载下来用相同的样本输入多次,得到不同的输出,但是差距不大,是有什么随机过程吗?内置模型没发现相同问题,用组件化搭了一个模型出来,训练好了然后加载出来,用同一条样本去测试,多次打分的结果不一致,千分位万分位的差异,就是没法用一条样本复现相同的打分

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
2 条回复 A 作者 M 管理员
  1. 我理解影响应该不大,此回答整理自钉群“【EasyRec】推荐算法交流群”

  2. 您好!这种情况可能是由于EasyRec组件化模型中的随机过程导致的。在EasyRec的组件化模型中,使用了多个组件块组成的有向无环图(DAG),这个DAG的输出节点由concat_blocks配置项定义,各输出组件块的输出tensor拼接之后输入给一个可选的顶部MLP层,或者直接链接到最终的预测层。这其中可能包含一些随机初始化的过程,例如某些层的权重初始化或者Dropout等操作,这些都可能引入随机性。因此,当您用相同的样本去测试时,可能会得到略微不同的结果。

    此外,如果您在训练过程中设置了随机种子,那么每次运行时得到的结果应该是相同的。但是如果没有设置随机种子,那么每次运行时得到的结果可能会有所不同。

  3. 是的,即使对于相同的输入样本,每次运行时模型输出的结果也可能不同,这是因为大多数机器学习模型都包含一些随机元素。具体来说,主要有以下两个原因:

    • 初始化权重:在训练模型之前,我们需要为网络中的权重分配初始值。这些初始值通常是随机生成的,这意味着即使是相同的输入样本,每次运行模型时也会得到不同的结果。
    • 随机采样:在训练模型的过程中,我们通常会对数据集进行随机抽样以形成训练批次。因此,即使对于完全相同的输入样本和参数设置,每次运行模型时也会得到不同的结果。