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

部署DecisionTreeRegressor到GCS Vertex AI报无save属性错误如何解决

错误原因

Scikit-learn的DecisionTreeRegressor类没有内置save()方法,你参考的MPG数据集教程使用的是TensorFlow/Keras框架的模型,这类模型才支持原生save方法,直接套用该方法到Scikit-learn模型上就会触发属性不存在的报错。

修复方案

你需要用joblib(Scikit-learn官方推荐的模型序列化工具)来保存决策树模型,再上传到GCS存储桶,操作步骤如下:

  1. 先在项目依赖中添加joblib,如果需要直接写入GCS路径,还要额外安装gcsfs:
pip install joblib gcsfs
  1. 修改train.py末尾的模型保存代码:
    删掉原代码最后一行的reg.save(BUCKET + '/housing/model'),替换为以下代码:
import joblib

# 直接将序列化模型写入GCS路径
model_save_path = f"{BUCKET}/housing/model.joblib"
joblib.dump(reg, model_save_path)

如果不想安装gcsfs,也可以先将模型保存到本地临时路径,再通过GCS SDK上传到存储桶:

import joblib
import os
from google.cloud import storage

# 先保存到本地临时目录
local_path = "/tmp/housing_model.joblib"
joblib.dump(reg, local_path)

# 上传到GCS存储桶
storage_client = storage.Client()
bucket_name = BUCKET.replace("gs://", "")
bucket = storage_client.get_bucket(bucket_name)
blob = bucket.blob("housing/model.joblib")
blob.upload_from_filename(local_path)

后续部署注意事项

  • 如果你使用Vertex AI预构建的Scikit-learn推理镜像,要保证训练用的Scikit-learn版本和预构建镜像支持的版本一致,避免模型加载失败
  • 如果使用自定义推理容器,需要在容器环境中安装对应版本的scikit-learn和joblib,部署时通过joblib.load()加载模型即可正常推理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:30:03