Sagemaker:如何在 Predictor 中设置 content_type(Sagemake > 2.0)?

2024-03-05

请求帮助解决以下错误。

调用 InvokeEndpoint 时发生错误 (ModelError) 操作:从模型收到客户端错误 (415) 和消息 “不支持内容类型应用程序/八位字节流。支持 内容类型是文本/csv、文本/libsvm”

这是相关代码 -

from sagemaker import image_uris
from sagemaker.estimator import Estimator

xgboost_hyperparameters = {
        "max_depth":"5",
        "eta":"0.2",
        "gamma":"4",
        "min_child_weight":"6",
        "subsample":"0.7",
        "num_round":"50"
}

xgboost_image = image_uris.retrieve("xgboost", boto3.Session().region_name, version="1")



estimator = Estimator(image_uri = xgboost_image,
                     hyperparameters = xgboost_hyperparameters,
                     role = role,
                     instance_count=1, 
                     instance_type='ml.m5.2xlarge', 
                      output_path= output_loc,
                     volume_size=5 )

from sagemaker.serializers import CSVSerializer
from sagemaker.deserializers import CSVDeserializer

train_input = sagemaker.inputs.TrainingInput(s3_data = train_loc, content_type='text/csv',s3_data_type = 'S3Prefix')
valid_input = sagemaker.inputs.TrainingInput(s3_data = validation_loc, content_type='text/csv',s3_data_type = 'S3Prefix')

estimator.CONTENT_TYPE = 'text/csv'
estimator.serializer = CSVSerializer()
estimator.deserializer = None

estimator.fit({'train':train_input, 'validation': valid_input})

# deploy model with data config
from sagemaker.model_monitor import DataCaptureConfig
from time import gmtime, strftime
s3_capture_upload_path = 's3://{}/{}/monitoring/datacapture'.format(bucket, prefix)
model_name = 'project3--model-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime())
endpoint_name = 'project3-endpoint'
data_capture_configuration = DataCaptureConfig(
                        enable_capture = True,
                        sampling_percentage=100,
                        destination_s3_uri=s3_capture_upload_path  )

deploy = estimator.deploy(initial_instance_count = 1,
                          instance_type = 'ml.m4.xlarge'    ,
                          data_capture_config=data_capture_configuration,
                          model_name=model_name,
                          endpoint_name = endpoint_name
                         )

然后我面临以下错误预测器

from sagemaker.predictor import Predictor

predictor = Predictor(endpoint_name=endpoint_name)
with open('test.csv', 'r') as f:
    for row in f:
        print(row)
        payload = row.rstrip('\n')
        response = predictor.predict(data=payload[2:])
        sleep(0.5)
print('done!')
 

我查看了这些链接但没有找到答案

  1. https://github.com/aws-samples/reinvent2019-aim362-sagemaker-debugger-model-monitor/blob/master/02_deploy_and_monitor/deploy_and_monitor.ipynb https://github.com/aws-samples/reinvent2019-aim362-sagemaker-debugger-model-monitor/blob/master/02_deploy_and_monitor/deploy_and_monitor.ipynb
  2. 如何在 Python 中的 Sagemaker 的 XGBoost 训练作业中指定 content_type? https://stackoverflow.com/questions/57908395/how-can-i-specify-content-type-in-a-training-job-of-xgboost-from-sagemaker-in-py
  3. https://github.com/aws/amazon-sagemaker-examples/issues/729 https://github.com/aws/amazon-sagemaker-examples/issues/729

As seen here https://sagemaker.readthedocs.io/en/v2.15.2/api/inference/predictors.html#sagemaker.predictor.Predictor.predict,predict()的initial_args是“boto3的默认参数调用端点 https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker-runtime.html#SageMakerRuntime.Client.invoke_endpoint call.

对我来说,这有效:

predictor.predict(review_input, initial_args={'ContentType': 'text/plain'})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sagemaker:如何在 Predictor 中设置 content_type(Sagemake > 2.0)? 的相关文章

随机推荐

  • Java8的Collection.parallelStream如何工作?

    Collection类带有一个新方法 parallelStream 在 Java SDK 8 中 显然 这种新方法提供了一种并行消费集合的机制 但是 我想知道Java是如何实现这种并行性的 其根本机制是什么 它只是多线程执行吗 或者 for
  • 为什么 WCF 有时会在生成的代理类型末尾添加“Field”?

    基本上 我有一个带有成员 X 和 Y 的服务器端类型 Foo 每当我使用 Visual Studio 的 添加服务器引用 时 我都会看到 WSDL 和生成的代理都将单词 Field 附加到所有成员并更改第一个字母的大小写 IE 中 X 和
  • 多处理 - 使用管理器命名空间来节省内存

    我有几个进程 每个进程都完成需要单个大 numpy 数组的任务 这只是被读取 线程正在搜索适当的值 如果每个进程都加载数据 我会收到内存错误 因此 我试图通过使用管理器在进程之间共享相同的数组来最小化内存使用量 但是我仍然收到内存错误 我可
  • 在 Python 中替换 XML 元素

    我试图用一组新的坐标替换 bbox 内部的元素 我的代码 import element tree import xml etree ElementTree as ET import xml file tree ET parse C high
  • 如何使用 argparse 为参数创建可选值?

    我正在创建一个 python 脚本 我想要一个参数来控制作为输出获得的搜索结果数量 我目前已命名该参数 head 这是我希望它具有的功能 When head未在命令行中传递我希望它默认为一个值 在这种情况下 一个相当大的 比如 80 Whe
  • 通过 FFmpeg 将过滤器添加到 Instagram 或 Snapchat 等视频

    我在用FFmpeg在我的 Android 应用程序中 我已经在视频上成功实现了以下滤镜 效果 反转颜色 黑与白 Sepia Vignette 伽玛效应 我关注了 FFmpeg 视频过滤器文档 还有类似的问题 https stackoverf
  • Azure AD B2C 在用户中导入

    我需要创建一个 B2C 目录并使用该图从旧的基于 NET 会员资格的应用程序导入成员 所以我遵循了这个教程https learn microsoft com en us azure active directory b2c active d
  • 高速高效更新 QTableView

    我使用带有 QItemDelegate 子类的 QTableView 来控制表视图单元格的外观和感觉 每个单元格显示外部连接设备的名称和状态 一次最多可以连接 100 个设备 每个设备的名称和类型本质上是静态的 很少更新 可能每小时一次 但
  • mongodb num_rows 相当于 php

    我怎样才能得到结果的数量 相当于num rows mysqli 在mongodb 如果我有 db gt dbName gt find array email gt newemail password gt newpass 检查符合此条件的结
  • 深入了解 skew() 函数

    我真的需要了解如何skew xdeg 函数有效所有研究似乎都没有解释 x 角度如何影响其他点并像这样扭曲它 我需要知道是否有任何数学公式或一种方法可以预期使用特定角度的结果 附 我已经阅读了大量文档 其中最好的一个是DevDocs其中说 这
  • 当 R 中的生存分析中违反比例假设时,如何对协变量与时间的相互作用进行建模

    在 R 中 当比例检验 使用 coxph 显示违反了 Cox 模型中的比例假设时 合并协变量和时间之间的交互项的最佳方法是什么 我知道您可以使用分层或与时间项交互 我对后者感兴趣 我无法在互联网上找到明确的解释以及如何执行此操作的示例 在使
  • 如何使用数字序列解压可变参数模板参数?

    如何 或者是否可以 使用数字序列解压参数包 例如 template
  • Android - 自定义小部件未更新

    我正在尝试为我的应用程序制作一个小部件 但它没有更新 我只需要更改文本视图文本并在按下按钮时打开一个活动 但它们都不起作用 代码 public void onUpdate Context context AppWidgetManager a
  • Xcode 10 和 super.tearDown

    从 Xcode 10 1 可能是 10 开始 当我创建单元测试文件时 我没有调用 super tearDown 和 super setUp 我在发行说明中没有看到这样的变化 在文档中https developer apple com doc
  • 快速、无分支的 unsigned int 绝对差

    我有一个程序 它花费大部分时间计算 RGB 值之间的欧几里德距离 无符号 8 位的 3 元组 Word8 我需要一个快速 无分支的 unsigned int 绝对差函数 这样 unsigned difference Word8 gt Wor
  • 可以使用 Twitter Bootstrap 来实现 Modernizr 吗?

    使用 Twitter Bootstrap 实现 Modernizr 可以吗 我目前正在将 Bootstrap 与 Google 的 html5shiv 结合使用 我想知道是否可以使用 Modernizr 来代替 或者只是为旧版 IE 浏览器
  • 在 Linux 上检查连接的蓝牙设备的电池电量

    如何检查已连接蓝牙设备的电池电量 该设备在 Android 上显示电池电量 因此我假设该设备支持基于 GATT 的电池服务 https www bluetooth com specifications gatt viewer attribu
  • 如何在 openLayer 地图中加载本地 gpx 文件?

    我认为标题很清楚 我正在使用 openLayer 库 v4 6 5 并且我试图在加载页面时在地图中加载本地 GPX 文件 在官方文档中 在 GPX 数据示例中 https openlayers org en latest examples
  • TSLint 错误:: 节点解释器路径不正确。请检查口译员设置

    我是 Angular 的新手 很想知道错误是什么 如何解决呢 我正在使用网络风暴 IDE 这就是我在 Intellij 中摆脱这个警告的方法 改变这个 to this
  • Sagemaker:如何在 Predictor 中设置 content_type(Sagemake > 2.0)?

    请求帮助解决以下错误 调用 InvokeEndpoint 时发生错误 ModelError 操作 从模型收到客户端错误 415 和消息 不支持内容类型应用程序 八位字节流 支持 内容类型是文本 csv 文本 libsvm 这是相关代码 fr