问一个机器学习PAI问题,我用 modelzoo/mmoe 跑训练,但是我还需要生成 saved_model,请问该怎么修改?
现在我是这么写的,就在 MonitoredTrainingSession 调用之后:
inputInfo = {key : tf.saved_model.utils.build_tensor_info(val) for key, val in model._feature.items()}
outputInfo = {"output": tf.saved_model.utils.build_tensor_info(model.output)}
print("inputInfo: ", inputInfo)
print("outputInfo: ", outputInfo)
prediction_signature = (
tf.saved_model.signature_def_utils.build_signature_def(
inputs = inputInfo,
outputs = outputInfo,
method_name=tf.saved_model.signature_constants.PREDICT_METHOD_NAME))
sess.graph._unsafe_unfinalize()
builder = tf.saved_model.builder.SavedModelBuilder(export_path)
builder.add_meta_graph_and_variables(
sess._tf_sess(), [tf.saved_model.tag_constants.SERVING],
signature_def_map = {'predict': prediction_signature,})
builder.save()
但不管我怎么设置 input 和 output,都会报错:
tensorflow.python.framework.errors_impl.InternalError: Output 3 of type int32 does not match declared output type int64 for node {{node prefetch_2/TensorBufferTake}}
有人知道怎么解决吗?多谢了~
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
TensorBufferTake 这个op,是staged引入的,不应该出现在serving 图中。serving 应该构造一个不含stage的图 ;推理的时候不是重新构图么,构图的时候去除staged 阶段,此回答整理自钉群“DeepRec用户群”
人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。