请教一下机器学习PAI,我的时间差序列改成以下这个配置,请问报错怎么解决?
features: {
input_names: 'pc_log_times_diff_ss'
feature_type: SequenceFeature
sub_feature_type: RawFeature
separator: '!'
embedding_dim: 8
sequence_combiner{
attention{}
}
}
从你提供的报错信息来看,这是一个关于PAI模型配置的问题。你的配置文件中,sequence_combiner
部分使用了attention
机制,但是attention
机制需要额外的参数设置,而你并未提供这些参数。
在PAI的配置文件中,sequence_combiner
部分需要包含一个attention
字段,该字段需要包含attention
相关的参数设置。例如:
sequence_combiner: {
attention: {
hidden_size: 128,
num_heads: 4,
dropout_rate: 0.1,
},
}
在这个例子中,hidden_size
、num_heads
和dropout_rate
是attention
需要的参数。你需要根据你的需求来设置这些参数。
另外,你的embedding_dim
设置为8,这可能有些偏小。对于时间序列数据,通常需要较大的嵌入维度来捕捉数据的特征。你可以尝试将embedding_dim
增大到32或64。
看 stderr 的报错:
raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: StringToNumberOp could not correctly convert string:
[[{{node sequence_str_2_float_pc_log_times_diff_ss}} = StringToNumberout_type=DT_FLOAT, _device="/device:CPU:0"]]
里面说你定义的是 float, 但是其实是 string, 没法转成 float
排查方法:
在 PAI-DSSM 中设置 features 参数时,在 sequence_combiner 属性下的 attention{} 是错误的,因为 PAI-DSSM 不支持 attention 功能。
建议您删除 attention 字段,或者替换为您需要的功能模块(例如 mean_pooling 或 gru)。以下是修正后的示例:
features: {
input_names: 'pc_log_times_diff_ss'
feature_type: SequenceFeature
sub_feature_type: RawFeature
separator: '!'
sequence_combiner{mean_pooling{} }
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。