首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于AWS SageMaker的数据预处理

基于AWS SageMaker的数据预处理
EN

Stack Overflow用户
提问于 2020-10-08 13:14:46
回答 2查看 480关注 0票数 1

我有一个端点,它在AWS上运行一个经过训练的SageMaker模型,它期望数据具有特定的格式。

最初,数据是在应用程序的客户端处理的,这意味着,API Gateway (接收AWS上的POST API调用)用来接收预处理过的数据,但是现在发生了变化,API Gateway将从客户端接收原始数据,而在发送到我们的SageMaker模型之前预处理这些数据的工作取决于我们的工作流程。

在这个工作流上创建预处理作业的最佳方法是什么,而不需要重新训练模型?我的预处理只是一堆数据转换,不需要标准化或计算所需的培训集(它不需要保存任何模型文件)。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-15 11:53:13

经过一些研究,这是我所遵循的解决方案:

  • 首先,我创建了一个SKLearn sagemaker模型来完成所有的预处理设置(我已经构建了一个Scikit学习自定义类来处理所有的预处理步骤,遵循这个AWS码)
  • 根据我的训练数据训练了这个预处理模型。具体而言,我的模型不需要进行培训(它没有任何标准化或任何需要存储培训数据参数的内容),但sagemaker需要对模型进行培训。
  • 加载我们使用Model参数获得的经过训练的遗留模型。
  • 使用级联的预处理模型和遗留模型创建了一个PipelineModel
代码语言:javascript
复制
pipeline_model = PipelineModel(name=model_name,
                               role=role,
                               models=[
                                    preprocess_model,
                                    trained_model
                               ])
  • 创建一个新端点,调用PipelineModel,然后更改Lambda函数以调用这个新端点。这样,我就可以将原始数据直接发送给同一个API Gateway,它将只调用one端点,而不需要支付两个端点24/7来执行整个过程。

我发现这是一种很好的、“经济”的方法,可以在经过训练的模型之外执行预处理,而不必在Lambda函数上做艰苦的处理工作。

票数 1
EN

Stack Overflow用户

发布于 2020-10-13 07:58:20

我将创建一个Lambda,它由API调用,处理数据并将其发送到您的SageMaker端点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64263330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档