使用 Amazon SageMaker 的语义内容推荐系统,存储在 S3 中

semantic content recommendation system with Amazon SageMaker, storing in S3

我对 AWS 和 Sagemaker 还很陌生,所以我决定按照 Amazon 提供的一些教程来熟悉它。我一直在关注这个 (tutorial),我意识到这是一个使用 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))

是returns这个错误

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 中起作用,以及是否有人可以指出正确的方向来纠正这个问题。

谢谢。

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

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