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

Amazon SageMaker语义内容推荐系统S3存储适配v2报错求助

问题原因解释

这个报错本质是SageMaker v1和v2版本的SDK设计差异导致的隐式变量依赖失效:

  • SageMaker v1版本的官方配套教程中,该代码块的前序步骤会隐式生成并全局留存predictions(特征矩阵)、labels(标签数组)两个变量,同时v1的Notebook内核默认会长期保留跨单元格的变量上下文,因此不需要显式赋值即可直接调用。
  • SageMaker v2版本做了两处破坏性调整导致该依赖失效:
    1. 内置算法、特征提取组件的返回值改为字典结构,不再默认将特征向量赋值给全局predictions变量,需要用户显式从返回结果中提取
    2. v2的SDK拆分了命名空间,同时SageMaker Studio新内核的上下文清理逻辑更严格,前序单元格生成的临时变量如果没有显式赋值留存,会被自动回收
修正指导方向

你可以按照以下步骤依次排查修正:

  1. 显式定义缺失的predictions和labels变量
    回到前序特征提取/推理的代码步骤,从返回结果中手动提取特征矩阵和标签数组,示例参考如下:
# 以下为v2版本特征提取结果的通用提取逻辑,可根据你实际使用的模型调整
# 假设你之前已经调用过推理接口拿到返回结果
inference_response = feature_extractor.predict(raw_training_data)
# 从返回字典中提取特征向量,赋值给predictions
predictions = inference_response["predictions"]
# 从你自己的训练数据集中提取标签列,转成numpy数组赋值给labels
labels = train_df["label_column"].values
  1. 补全缺失的依赖导入
    你当前运行的代码未导入os和boto3依赖,需在代码开头补充导入:
import os
import boto3
  1. 确认全局参数已定义
    提前声明BUCKET和PREFIX变量,可直接使用SageMaker默认桶:
import sagemaker
sagemaker_session = sagemaker.Session()
BUCKET = sagemaker_session.default_bucket()
PREFIX = "semantic-content-recommendation/knn-data"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 01:54:10