问题1:机器学习PAI命令中-Dselected_cols是必须设置的吗?
我发现pai命令中如果没有设置-Dselected_cols,而config文件的data_config中即使设置了selected_cols也是无效的,会默认使用表中的全部列。问题2:恩,然后pai-jobs/run.py中的set_selected_cols()会把Dselected_cols 默认值(如果没有设置就是所有列)覆盖掉config里的selected_cols参数,导致config里设置无效,这是符合预期的吗?如果pai命令没有设置-Dselected_cols,图中红框打印就是默认的全部列
这个条件永久成立,然后会覆盖config的设置值。
在机器学习PAI中,-Dselected_cols
参数不是必须设置的,它是可选的。
-Dselected_cols
用于指定从输入数据中选择哪些列作为模型的输入特征。如果未显式设置-Dselected_cols
参数,系统将默认使用所有输入数据的列作为特征。
然而,具体是否需要设置-Dselected_cols
参数取决于你的数据和模型的需求。在某些情况下,你可能只对特定的列感兴趣,并希望仅使用这些列作为特征进行训练或预测。此时,你可以通过设置-Dselected_cols
参数来筛选出所需的列。
如果你希望使用所有输入数据的列作为特征,不需要进行特定的列选择操作,则可以不设置-Dselected_cols
参数。
总之,-Dselected_cols
参数在机器学习PAI命令中是可选的,根据你的需求来决定是否设置该参数。
针对问题1的回答:pai 启动的流程是先加载表,运行 EasyRec 后才读取 config 的。要是在 config 里面指定,加载表在这之前,Dselected_cols 默认应该是会先把表的所有列加载的, 相关的代码见:https://github.com/alibaba/EasyRec/blob/master/pai_jobs/easy_rec_flow/easy_rec.lua#L522 针对问题2的回答:应该不是符合预期的。和同事讨论了一下,这个在 pai 上确实是这样,会覆盖掉。其实在 pai 上不设 Dselected_col 时,默认全部的列都读进来了,无论在 config 里面设置什么,都不影响之前全部列都读进来这个行为。即使不覆盖掉,只取部分,实际上处理的也是全部列。所以这个地方就没有改。此回答整理自钉群“【EasyRec】推荐算法交流群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。