Может ли пользовательская модель sklearn быть загружена в gcloud ml-engine? - PullRequest
0 голосов
/ 29 апреля 2018

Я опробовал новую функциональность для развертывания модели sklearn на ml-engine, следуя инструкции gcloud . Я создал оболочку для Sklearn Estimator GaussianMixture, чтобы изменить функцию предсказания, чтобы она выводила вероятностные выходные данные (например, sample_scores) вместо предсказаний класса по умолчанию.

GMMWrapper.py

class GMMWrapper(GaussianMixture):
    def predict(self, X):
        return self.score_samples(X)

Я создаю конвейер и сохраняю его стандартным способом:

gmm = GMMWrapper()
pipegmm = Pipeline([('gmm', gmm)])
pipegmm.fit(data)
with tf.gfile.Open(model_output_path, 'wb') as model_file:
    joblib.dump(pipegmm, model_output_path + '.joblib')

Однако при развертывании в gcloud с использованием gcloud beta ml-engine versions create, конечно, он не может найти модуль GMMWrapper

ERROR: (gcloud.beta.ml-engine.versions.create) Bad model detected with
error:  "Failed to load model: Could not load the model: 
/tmp/model/0001/model.joblib. No module named 'GMMWrapper'.

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

DEPLOYMENT_SOURCE="/folder-containing-model-and-GMMWrapper"
MODEL_NAME="GMMs"
FRAMEWORK="SCIKIT_LEARN"
STAGING_BUCKET="gs://sklearn-models"

gcloud beta ml-engine versions create v1 \
    --model $MODEL_NAME --origin $DEPLOYMENT_SOURCE \
    --framework $FRAMEWORK --staging-bucket $STAGING_BUCKET \
    --runtime-version=1.5 --python-version=3.5

Но это возвращает ту же ошибку. Мне нужно как-то сообщить gcloud, где искать модуль. Я подозреваю, что это не может быть сделано, но подумал, что спросить, если есть способ.

(В качестве альтернативы, если есть способ изменить, какая функция вызывается при вызове предиката в конвейере, что также может решить мою проблему.)

1 Ответ

0 голосов
/ 01 мая 2018

Эта функция в настоящее время не поддерживается. Мы всегда ищем способы улучшить продукт и учтем эту предложенную функцию.

...