在SageMaker上以经过训练的模型更改预处理

时间:2020-01-10 09:24:43

标签: amazon-web-services machine-learning preprocessor amazon-sagemaker

我已经在SageMaker上训练了模型并进行了处理。通过预处理,我的意思是我根据此https://github.com/aws/sagemaker-python-sdk/blob/master/src/sagemaker/tensorflow/deploying_tensorflow_serving.rst添加了具有input_handler和output_handler函数的inference.py文件。

我的工作很好,但问题是每次我想在预处理中更改某些内容时,都必须重新训练模型。可能还有其他无需重新培训就可以做到这一点的方法吗?

1 个答案:

答案 0 :(得分:0)

训练有素的模型只是一个获取参数(输入向量)并返回输出(输出向量/值)的函数。如果使用修改后的预处理更改了输入,则需要更改函数的实现。这意味着您需要重新训练模型。

重新训练模型是一个好习惯,即使您在预处理中没有进行任何更改,因为输入会随时间变化。房价的经典示例强调了您的模型仅适用于您训练的数据。如果几年后市场发生了变化,则必须对模型进行重新培训。

每天都会对某些模型进行训练。 Amazon SageMaker使训练模型变得容易,但可以调用训练API,并等待其完成。您可以自动化以下过程:构建新的Docker映像(如果更改了预处理),调用训练API,然后将部署API从SageMaker调用到ECS / EKS或任何其他容器托管服务。