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

在Amazon SageMaker部署Sklearn模型时遇CreateModel操作错误求解

解决Amazon SageMaker部署Sklearn模型时找不到model.tar.gz的问题

这个错误是SageMaker SKLearn训练后模型输出环节的典型问题,我帮你梳理几个关键排查和解决步骤:

1. 确保训练脚本正确保存模型到指定目录

SageMaker的SKLearn Estimator要求你的训练脚本(sklearn.py)必须将训练好的模型保存到**SM_MODEL_DIR环境变量指向的路径**,SageMaker才会自动把这个目录下的内容打包成model.tar.gz上传到你指定的output_path。

你需要在训练脚本的末尾添加类似这样的代码:

import os
import joblib

# 假设你的训练好的模型变量名为model
joblib.dump(model, os.path.join(os.environ['SM_MODEL_DIR'], 'model.joblib'))

如果脚本里没有这段逻辑,训练过程不会生成模型文件,自然也就没有model.tar.gz上传到S3。

2. 验证S3输出路径的正确性

从错误信息看,系统在s3://tree/sklearn/output/model.tar.gz找不到文件,你需要确认:

  • 代码中bucket变量的值确实是tree,prefix变量的值确实是sklearn,有没有拼写错误(S3 bucket名称区分大小写,且只能用小写字母、数字和连字符)
  • 直接登录S3控制台,手动查看这个路径下是否存在model.tar.gz文件,如果训练完成后该文件不存在,说明训练过程没有输出模型

3. 检查训练作业是否成功完成

如果训练作业中途失败,也不会生成模型文件。你可以:

  • 登录SageMaker控制台,找到对应的训练作业,查看其状态是否为「Completed」
  • 查看训练作业的日志(点击训练作业详情里的「日志」链接),检查是否有报错信息,比如训练脚本里的代码错误导致训练中断

4. 确认IAM角色的权限足够

你的SageMaker执行角色(role变量对应的IAM角色)需要具备向目标S3路径写入文件的权限。你需要检查该角色的权限策略,确保包含类似以下的权限:

{
    "Effect": "Allow",
    "Action": "s3:PutObject",
    "Resource": "arn:aws:s3:::tree/sklearn/output/*"
}

如果角色没有这个权限,训练完成后无法将模型文件上传到S3,也会出现找不到文件的错误。

按照这几个步骤逐一排查,应该就能解决问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:22:35