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

机器学习PAI中这个定长和变长怎么理解?

机器学习PAI中如果是定长的, DataFrame.Field('A', tf.int64, shape=[32]);如果是变长的,DataFrame.Field('A', tf.int64, ragged_rank=1)。这个定长和变长怎么理解? 我发现虽然我的数据都是20个长度的,但是要用ragged_rank=1才能读出来。has unexpected ragged rank 1, which should be 4如果长度是1的,不会报错has unexpected ragged rank 1, which should be 20

展开
收起
冰激凌甜筒 2023-05-02 20:29:11 229 0
1 条回答
写回答
取消 提交回答
  • 发表文章、提出问题、分享经验、结交志同道合的朋友

    在机器学习PAI中,定长和变长指的是输入数据的特征长度是否固定。如果特征长度是固定的,就称之为定长,反之就称之为变长。

    在定长的情况下,你可以使用shape参数指定每个特征的长度,例如DataFrame.Field('A', tf.int64, shape=[32])表示特征A是一个长度为32的定长特征。

    而在变长的情况下,特征的长度是不固定的,因此不能使用shape参数来指定长度。相反,你需要使用ragged_rank参数指定RaggedTensor的秩,以处理变长特征。RaggedTensor是一种可以表示不规则形状数据的Tensor类型,它能够灵活地处理变长特征,在处理变长特征时,需要使用ragged_rank参数来指定RaggedTensor的秩。

    对于你的问题,即使你的特征都是长度为20的,但是如果你在定义特征时使用了ragged_rank=1,则会将特征解析为变长特征。因此需要使用相同的方式来定义特征,以确保在训练和测试时特征的解析方式是一致的。

    如果你定义的特征长度是1,而使用了ragged_rank=1,则不会出现问题,因为长度为1的特征可以视为变长特征中的一种特殊情况。但是如果你定义的特征长度是20,而使用了ragged_rank=1,则会出现错误提示"has unexpected ragged rank 1, which should be 20",因为ragged_rank参数应该是特征长度的秩,而不是1。

    Regenerate response

    2023-05-04 10:29:08
    赞同 展开评论 打赏

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

相关产品

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

    热门文章

    相关电子书

    更多
    大规模机器学习在蚂蚁+阿里的应用 立即下载
    阿里巴巴机器学习平台AI 立即下载
    微博机器学习平台架构和实践 立即下载