首页 > 解决方案 > 带有 Amazon SageMaker 的语义内容推荐系统,存储在 S3 中

问题描述

我对 AWS 和 Sagemaker 相当陌生,并决定遵循一些亚马逊必须熟悉的教程。我一直在关注这个(教程),我意识到这是一个使用 Sagemaker v1 的旧教程。我已经能够查找和更改教程在 v2 中工作所需的任何内容,但我陷入了将训练数据存储在 S3 存储桶中以部署模型的这一部分。

import io
import sagemaker.amazon.common as smac

print('train_features shape = ', predictions.shape)
print('train_labels shape = ', labels.shape)
buf = io.BytesIO()
smac.write_numpy_to_dense_tensor(buf, predictions, labels)
buf.seek(0)

bucket = BUCKET
prefix = PREFIX
key = 'knn/train'
fname = os.path.join(prefix, key)
print(fname)
boto3.resource('s3').Bucket(bucket).Object(fname).upload_fileobj(buf)
s3_train_data = 's3://{}/{}/{}'.format(bucket, prefix, key)
print('uploaded training data location: {}'.format(s3_train_data))

它返回此错误

NameError Traceback (most recent call 
last)
<ipython-input-20-9e52dd949332> in <module>
 3
 4
----> 5 print('train_features shape = ', predictions.shape)
 6 print('train_labels shape = ', labels.shape)
 7 buf = io.BytesIO()
NameError: name 'predictions' is not defined

我很好奇如果没有定义预测并且如果有人能指出我正确的方向来纠正这个问题,为什么这会在 Sagemaker v1 而不是 v2 中起作用。

谢谢。

标签: pythonamazon-web-servicesamazon-s3amazon-sagemaker

解决方案


看起来他们已经遗漏了一些代码,或者更改了术语并意外地留在了预测中。predictions 是在此页面https://docs.aws.amazon.com/sagemaker/latest/dg/ex1-test-model.html上定义的对象

你必须弄清楚你的情况是什么预测。


推荐阅读