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

TensorFlow检查点无法保存至Amazon SageMaker Notebook实例求助

解决Amazon SageMaker中TensorFlow模型检查点保存失败的问题

我一眼就发现问题所在了——你直接把S3桶名当作本地文件路径来使用了!SageMaker Notebook的本地文件系统和AWS S3是完全独立的,os.path这类本地文件操作函数根本没法直接读写S3上的内容,这就是为什么你看到打印的路径正常,但实际找不到检查点文件的核心原因。

下面是具体的修复步骤和细节解释:

1. 先将检查点保存到本地临时路径

SageMaker Notebook实例有自己的本地磁盘空间(推荐用/tmp目录,或者你的工作目录),先把检查点存到本地,之后再上传到S3。修改你的路径相关代码:

# 创建本地临时存储目录
local_out_dir = os.path.abspath(os.path.join("/tmp", "runs", timestamp))
local_checkpoint_dir = os.path.abspath(os.path.join(local_out_dir, "checkpoints"))
local_checkpoint_prefix = os.path.join(local_checkpoint_dir, "model")

# 确保目录存在,避免创建失败
os.makedirs(local_checkpoint_dir, exist_ok=True)

# 先保存到本地文件系统
path = saver.save(sess, local_checkpoint_prefix, global_step=current_step)
print("Saved model checkpoint to local path: {}\n".format(path))

2. 将本地检查点上传到S3

接下来需要把本地的检查点文件手动上传到你的S3桶里,这里提供两种常用方法:

方法一:使用SageMaker SDK(更简洁)

import sagemaker

sagemaker_session = sagemaker.Session()
# 把整个检查点目录上传到S3指定路径
sagemaker_session.upload_data(
    path=local_checkpoint_dir,
    bucket=bucket,
    key_prefix=os.path.join(prefix, "runs", timestamp, "checkpoints")
)
print("Uploaded checkpoints to S3: s3://{}/{}\n".format(bucket, os.path.join(prefix, "runs", timestamp, "checkpoints")))

方法二:使用boto3(更灵活,适合自定义上传逻辑)

import boto3
s3 = boto3.client('s3')

# 遍历本地检查点目录下的所有文件,逐个上传到S3
for root, dirs, files in os.walk(local_checkpoint_dir):
    for file in files:
        local_file_path = os.path.join(root, file)
        # 计算文件在S3中的相对路径
        s3_key = os.path.join(prefix, "runs", timestamp, "checkpoints", os.path.relpath(local_file_path, local_checkpoint_dir))
        s3.upload_file(local_file_path, bucket, s3_key)
print("All checkpoint files uploaded to S3 successfully\n")

额外注意事项

  • 如果你是在SageMaker训练任务(Training Jobs)中运行代码,可以直接用/opt/ml/checkpoints/路径,SageMaker会自动把这个目录下的内容同步到指定的S3输出路径,但Notebook实例没有这个自动同步机制,必须手动上传。
  • 确认你的Notebook实例绑定的IAM角色拥有目标S3桶的PutObject权限,虽然你提到常规存储操作正常,但还是可以检查一下权限范围是否覆盖了当前的上传路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:38:46