Как загрузить и развернуть предварительно обученную модель AWS Sagemaker XGBoost на локальном компьютере? - PullRequest
0 голосов
/ 10 января 2019

Я обучил модель Sagemaker XGBoost и загрузил файл model.tar.gz из S3 на мою локальную машину. Как я могу загрузить эту модель для ее развертывания с помощью колбы?

Я пытался использовать pickle для загрузки распакованного файла модели, но, похоже, он не работает.

import sagemaker
import boto3
import os
import pickle

with open('xgboost-model', 'r') as inp:
   cls.model = pkl.load(inp)

Traceback (последний вызов был последним): Файл "", строка 2, в Файл "C: \ Anaconda3 \ lib \ encodings \ cp1252.py", строка 23, в декодировании возвращать codecs.charmap_decode (input, self.errors, decoding_table) [0] UnicodeDecodeError: кодек 'charmap' не может декодировать байт 0x81 в позиции 969: символ отображается на

1 Ответ

0 голосов
/ 10 января 2019

Разобрался! Загруженную предварительно обученную модель Sagemaker можно извлечь из ее формата tar.gz на локальный компьютер. После извлечения откройте файл в python в байтовом формате и загрузите с помощью pickle.

file = open(model_path, 'rb')
xgb_model = pickle.loads(file.read())

Затем прочитайте входные данные для преобразования в формат xgboost DMatrix без каких-либо независимых данных или заголовков, чтобы делать прогнозы.

data_input = xgb.DMatrix(data.iloc[:, 1:].values)
predictions = xgb_model.predict(data_input)
...