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

机器学习PAI 序列最大长度为25,为什么训练过程中会出现21的序列呢,是有什么配置没配吗?

问题1:机器学习PAI 序列最大长度为25,为什么训练过程中会出现21的序列呢,是有什么配置没配吗?tensorflow.python.framework.errors_impl.InvalidArgumentError: From /job:chief/replica:0/task:0:
All dimensions except 2 must match. Input 1 has shape [512 21 8] and doesn't match input 0 with shape [512 25 8].
[[node gradients/concat_3_grad/ConcatOffset (defined at /worker/venv/lib/python3.6/site-packages/tensorflow_core/python/framework/ops.py:1748) ]]
问题2:离线是需要把所有序列都填充到25的长度吗?还说一个配置就行?

展开
收起
真的很搞笑 2023-07-22 12:49:32 76 0
2 条回答
写回答
取消 提交回答
  • 问题1:机器学习 PAI 中的序列最大长度为25是通过配置进行设定的。在你的训练过程中,出现了序列长度为21的错误,这可能是由于模型输入数据的不一致导致的。具体而言,错误信息显示输入 0 的形状为 [512, 25, 8],而输入 1 的形状为 [512, 21, 8],它们的第二个维度长度不匹配。

    这可能是由于在构建模型时,在某些地方使用了预定义的序列长度(25),但实际训练数据中的某些序列长度不符合该预定义长度。你可以检查以下几个方面:

    • 确保训练数据的序列长度都小于等于25。如果有超过25的序列存在,需要对其进行处理,例如截断或填充到指定长度。
    • 检查训练数据输入管道的配置,确保正确地读取和处理序列数据。
    • 确认模型中相关的张量维度设置与数据输入的一致性。

    问题2:离线训练时,是否需要将所有序列填充到长度为25取决于你的任务和模型设计。在某些情况下,填充序列以使其具有相同的长度是必要的,特别是当你的模型对输入序列长度敏感时。这样做的好处是确保模型能够处理统一长度的序列。

    然而,对于某些任务和模型,你可以通过适当的配置来支持可变长度的序列。例如,使用循环神经网络(RNN)时,你可以在序列输入中指定 None 作为长度,以接受不同长度的序列。

    因此,在离线训练中,是根据具体需求来决定是否需要将所有序列填充到固定长度。如果你的模型需要固定长度的序列输入,那么填充序列到长度为25是必要的;如果模型支持可变长度的序列输入,那么只需要相应的配置即可。

    2023-07-31 17:10:19
    赞同 展开评论 打赏
  • 回答1:序列的组内要等长。如果是 21 的话要求组内所有的序列长度都是 21。现在看来是组内不等长
    回答2:不用填充。等长就可以。你一个 click 序列的话,肯定是等长的。如果是不同的序列,比如 click 序列 和 点赞序列,那就放在两个 group 里面就可以。,此回答整理自钉群“【EasyRec】推荐算法交流群”

    2023-07-22 14:49:09
    赞同 展开评论 打赏

人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。

相关产品

  • 人工智能平台 PAI
  • 热门讨论

    热门文章

    相关电子书

    更多
    大规模机器学习在蚂蚁+阿里的应用 立即下载
    基于Spark的面向十亿级别特征的 大规模机器学习 立即下载
    基于Spark的大规模机器学习在微博的应用 立即下载