Google Cloud Platform, Ml Engine, нет модуля с именем sklearn_crfsuite.estimator - PullRequest
0 голосов
/ 28 ноября 2018

Я успешно потренировал модель scikit на ML Engine.Я могу получить файл model.joblib из моего хранилища Cloud Storage и загрузить его, а также получить локальные прогнозы с помощью gcloud.Однако я не могу создать версию модели.

Я использую оценщик sklearn_crfsuite

crf = sklearn_crfsuite.CRF(

algorithm='lbfgs',

c1=0.1,

c2=0.1,

max_iterations=2,

all_possible_transitions=True

)

Я сохраняю модель, как описано ниже:

model = 'model.joblib'

joblib.dump(crf, model)

мои настройки.py to train is:

'''Cloud ML Engine package configuration.'''
from setuptools import setup, find_packages



REQUIRED_PACKAGES = ['joblib==0.13.0',
                     'sklearn-crfsuite==0.3.6',
                     'sklearn==0.0'
                    ]

setup(name='trainer',
      version='1.0',
      packages=find_packages(),
      include_package_data=True,
      install_requires=REQUIRED_PACKAGES)

Я отправляю пакетный поезд:

gcloud ml-engine jobs submit training train_$JOB_NAME \
--runtime-version 1.8 \
--python-version 2.7 \
--job-dir=gs://$BUCKET_NAME/jobs/$JOB_NAME/ \
--package-path= trainer \
--module-name trainer.model \
--region $REGION \
--scale-tier BASIC \
-- \
--train-data-dir=gs://$BUCKET_NAME/dataset \
--job-dir=gs://$BUCKET_NAME/jobs/$JOB_NAME

Модель обучается и экспортируется в job-dir, но когда развертывать:

gcloud alpha ml-engine versions create v1 --model teste --origin \
$ORI --python-version 2.7 --runtime-version 1.8 --framework scikit-learn

сообщает об этой ошибке:

ОШИБКА: (gcloud.alpha.ml-engine.versions.create) Обнаружена плохая модель с ошибкой: «Не удалось загрузить модель: не удалось загрузить модель: /tmp/model/0001/model.joblib. Нет модуля с именем sklearn_crfsuite.estimator. (Код ошибки: 0) "

1 Ответ

0 голосов
/ 30 ноября 2018

Не могли бы вы убедиться, что у вас правильная структура каталогов?

  • Вам не нужно включать sklearn в файл setup.py, поскольку он предоставляется платформой.Чтобы избежать путаницы, удалите его из поля REQUIRED_PACKAGES.

  • Вы можете проверить правильность вашего setup.py, проверив, передвигается ли import joblib до импорта в sklearn-crfsuite, работает

  • Убедитесь, что файл setup.py параллелен тренеру (то есть на один каталог выше, чем модель.py).Смотрите репозиторий GitHub для примера:

https://github.com/GoogleCloudPlatform/training-data-analyst/tree/master/blogs/sklearn/babyweight

...