Sagemaker 将模型导出并加载到内存

Sagemaker export and load model to memory

我使用 sagemaker 创建了一个模型(在 aws ml notebook 上)。 然后我将该模型导出到 s3 并在那里创建了一个 .tar.gz 文件。

我试图找到一种方法将模型对象加载到我的代码中的内存中(不使用 AWS docker 图像和部署)和 运行 对其进行预测。

我在 sagemaker docs 的模型部分寻找函数来执行此操作,但那里的所有内容都与 AWS docker 图像紧密耦合。

然后我尝试用 tarfileshutil 包打开文件,但没有用。

有什么想法吗?

除 XGBoost 外,built-in 算法是使用 Apache MXNet 实现的,因此只需从 .tar.gz 文件中提取模型并使用 MXNet 加载它:load_checkpoint()是要使用的 API。

XGBoost 模型只是腌制对象。在 sklearn 中解压并加载:

$ python3
>>> import sklearn, pickle
>>> model = pickle.load(open("xgboost-model", "rb"))
>>> type(model)
<class 'xgboost.core.Booster'>

使用 built-in 库(Tensorflow、MXNet、Pytorch 等)训练的模型是原始模型,可以使用正确的库加载 as-is。

希望对您有所帮助。