机器学习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
在机器学习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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。