开发者社区 问答 正文

导出tensor serving需要的模型,然后restAPI调用的时候,为什么会报错

导出的是以test_domain_A为输入,test_fake_B为输出的 tensor serving需要的模型 image.png 本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。https://developer.aliyun.com/article/706511 点击链接欢迎加入感兴趣的技术领域群。

展开
收起
珍宝珠 2019-08-22 14:42:07 531 分享 版权
阿里云 AI 助理回答

在阿里云上,如果您希望将训练好的模型导出为Tensor Serving(可能您指的是TensorFlow Serving)所需格式,以便于部署和提供在线预测服务,可以遵循以下步骤操作:

  1. 模型训练与保存

    • 首先,确保您的模型是使用TensorFlow等框架训练的,并且已经达到了满意的性能。
    • 使用TensorFlow的tf.saved_model API保存模型。这一步会生成一个SavedModel目录结构,这是TensorFlow Serving所要求的格式。例如:

      import tensorflow as tf
      
      # 假设你有已训练好的模型和输入输出占位符
      input_tensor = tf.placeholder(tf.float32, shape=[None, ...], name='test_domain_A')
      output_tensor = ...  # 你的模型逻辑处理后得到的输出tensor,命名为'test_fake_B'
      
      # 构建签名定义,用于TensorFlow Serving识别输入输出
      signature_def_map = {
       'serving_default': tf.saved_model.signature_def_utils.build_signature_def(
           inputs={'test_domain_A': tf.saved_model.utils.build_tensor_info(input_tensor)},
           outputs={'test_fake_B': tf.saved_model.utils.build_tensor_info(output_tensor)}
       )
      }
      
      # 保存模型
      builder = tf.saved_model.builder.SavedModelBuilder('export_path')
      builder.add_meta_graph_and_variables(
       sess=tf.Session(), 
       tags=[tf.saved_model.tag_constants.SERVING],
       signature_def_map=signature_def_map
      )
      builder.save()
      

    这段代码展示了如何保存模型,并明确指定了输入test_domain_A和输出test_fake_B

  2. 上传至阿里云OSS

    • 将上述生成的SavedModel目录打包成ZIP或直接上传到阿里云对象存储服务(OSS)。OSS提供了安全、低成本、高可靠的云存储服务,适合存放模型文件。
  3. 部署到阿里云模型服务

    • 使用阿里云的模型服务产品,如PAI-EAS(Platform for Artificial Intelligence - Enterprise Edition)来部署模型。EAS支持多种模型格式,包括TensorFlow Serving所需的SavedModel格式。
    • 在EAS控制台,创建模型服务,选择从OSS导入模型,然后按照提示指定OSS中的模型文件路径。
    • 配置服务时,根据需要设置CPU/GPU资源、环境变量等参数。
    • 部署完成后,您将获得一个API endpoint,通过该endpoint即可调用模型进行预测,传入test_domain_A作为输入,获取test_fake_B作为输出。

通过以上步骤,您可以将满足特定输入输出格式要求的模型成功部署到阿里云上,实现高效、可扩展的在线预测服务。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答地址: