You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GCP AI Platform部署TensorFlow讽刺文本检测模型JSON序列化报错咨询

GCP AI Platform部署TensorFlow模型张量JSON序列化问题解决方案

核心原因:EagerTensor是TensorFlow运行时专属对象,不符合JSON序列化规则,GCP AI Platform预测接口仅支持原生Python类型、列表、字符串等可序列化输入,以下是可行方案:

方案1:客户端张量转原生列表(最便捷)

直接在构造请求前将张量转换为Python原生整数/浮点数列表,即可直接序列化:

import json

# 原有tokenize逻辑
text = tokenize_text('This is a text')
# 分别提取两个张量转成列表
input_ids = text[0].numpy().tolist()
attention_mask = text[1].numpy().tolist()

# 构造GCP要求的标准请求格式
request_data = {
    "instances": [
        {
            "input_ids": input_ids[0],
            "attention_mask": attention_mask[0]
        }
    ]
}
# 序列化无报错
json_str = json.dumps(request_data)

注意:JSON中的键名需要和你部署模型的输入签名的输入名完全对应,若你模型的两个输入是其他名称,需同步修改键名。

方案2:将tokenize逻辑封装到模型部署包中

将文本转张量的处理逻辑集成到模型的前处理环节,部署后的模型直接接收原始文本字符串作为输入,客户端无需处理张量相关逻辑:

  • 用tf.keras.Model封装原模型,新增输入层接收字符串,内置调用tokenize_text的逻辑完成张量转换后再传入原预测层
  • 重新导出SavedModel格式部署,客户端直接传字符串即可,无需做张量处理,避免序列化问题

方案3:使用GCP自定义预测例程

如果需要更灵活的预处理逻辑,可以使用GCP AI Platform的自定义预测功能:

  • 编写自定义predictor.py,在preprocess方法中完成JSON输入到张量的转换
  • 打包依赖和模型上传部署,客户端可根据自定义逻辑传任意可序列化内容,预处理由服务端完成

方案4:批量预测优化

如果是批量处理文本,可直接将所有样本的张量转成嵌套列表,放入instances数组中即可,单请求支持批量预测,无需多次调用接口。

内容的提问来源于stack exchange,提问作者Oweys

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 06:42:02