代码之家  ›  专栏  ›  技术社区  ›  NotSoShabby

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

  •  0
  • NotSoShabby  · 技术社区  · 7 年前

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

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

    我在 sagemaker docs ,但所有这些都与AWS docker图像紧密耦合。

    然后我试着用 tarfile shutil 但那是没用的。

    有什么想法吗?

    0 回复  |  直到 7 年前
        1
  •  2
  •   Julien Simon    7 年前

    除了XGBoost,内置算法是用Apache MXNet实现的,所以只需从.tar.gz文件中提取模型并用MXNet加载它:load_checkpoint()是要使用的API。

    XGBoost模型只是pickle对象。在sklearn中解除锁定并加载:

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

    使用内置库(Tensorflow、MXNet、Pytorch等)训练的模型是普通的模型,可以像使用正确的库一样加载。

    希望这有帮助。