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

У меня возникают проблемы с развертыванием простой модели, обученной Pytorch, на AI Platform Serving.

Вот ошибка:

Creating version (this might take a few minutes)......failed.
ERROR: (gcloud.beta.ai-platform.versions.create) Create Version failed. Bad model detected with error:  "Failed to load model: Unexpected error when loading the model: Can't get attribute 'Net' 
on <module '__main__' from 'prediction_server_beta.py'> (Error code: 0)"

Вот пользовательский класс прогнозирования:

import os
import pickle 
import numpy as np 
import torch
from torch_model import *
class CustomModelPrediction(object):
    def __init__(self, model):
        self._model = model

    def predict(self, instances):
        input = torch.Tensor(instances)
        predictions = self._model(input)

        return predictions

    @classmethod
    def from_path(cls, model_dir):
        from torch_model import Net
        model = Net()
        model = torch.load(os.path.join(model_dir, 'pickle_saved_model.pkl'))
        #model.eval()
        return cls(model)

Я пытался изменить код и сохранить форматы моделей (.pkl, .pth, .pt), но ничего не работает. Я также пытался включить свой класс модели в тот же сценарий .py, что и мой пользовательский класс предиктора, и это тоже не сработало. Устанавливаемый в pip пакет содержал все необходимые коды, то есть код модели, а также код пользовательского предиктора. Цените помощь!


comment
Пожалуйста, взгляните на это: stackoverflow.com /вопросы/60423140/   -  person gogasca    schedule 18.03.2020