开发者社区 > 大数据与机器学习 > 人工智能平台PAI > 正文

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

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

展开
收起
cuicuicuic 2023-11-05 17:34:49 47 0
3 条回答
写回答
取消 提交回答
  • 我理解影响应该不大,此回答整理自钉群“【EasyRec】推荐算法交流群”

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

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

    2023-11-06 10:31:08
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

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

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

热门讨论

热门文章

相关电子书

更多
大规模机器学习在蚂蚁+阿里的应用 立即下载
阿里巴巴机器学习平台AI 立即下载
机器学习及人机交互实战 立即下载