#google-cloud-platform #google-ai-platform
#google-cloud-platform #google-ai-platform
Вопрос:
Папка /tmp / model в экземпляре gcloud кажется пустой. Похоже, что файлы не были скопированы правильно из учетной записи хранилища, хотя в журнале stderr указано иное.
Пожалуйста, как мне это сделать и чего мне не хватает. Я могу успешно создать версию модели, когда я делаю запрос на прогнозирование.
Вот команда, используемая для создания версии модели:
gcloud beta ai-platform versions create $VERSION_NAME --model $MODEL_NAME --runtime-version 1.15 --python-version 3.7 --origin gs://$BUCKET_NAME/custom_prediction_routine/model/ --package-uris gs://$BUCKET_NAME/custom_prediction_routine/custom_predict_code-0.1.tar.gz --prediction-class predictor.MyPredictor
И это from_path
метод класса:
@classmethod
def from_path(cls, model_dir):
sys.stderr.write(str(model_dir))
return cls(model_dir)
Комментарии:
1. Я не думаю, что платформа AI, но не могли бы вы показать нам, как вы настроили ее для копирования файлов? если это журнал stderr, и вы имели в виду ‘/ tmp /model/0001 / там, я бы предположил, что это просто отслеживает, в каком каталоге он ожидает найти модель, и не подтверждает, что он скопировал файлы — если вы не можете показать нам код, который создает этот журнал?
2. @Rup, При создании версии модели вы должны указать ссылку на корзину облачного хранилища Google для моделей. Они обрабатывают копирование автоматически со своей стороны, мне не нужно указывать, как оно копируется. В момент прогнозирования они, в свою очередь, выдают вам каталог, в который была скопирована ваша модель. Текущая проблема сейчас заключается в том, что каталог, который они возвращают в момент прогнозирования, фактически пуст
3. Хорошо, спасибо. В основном я просил вас показать нам, что вы на самом деле делаете, чтобы кто-нибудь, кто знает об этом, мог сказать вам, что вы сделали неправильно, поскольку вы не показали нам никакой конфигурации или кода. Но, похоже, это полностью не в вашей власти, поэтому, я думаю, вам придется обратиться в службу поддержки Google.
4. Можете ли вы предоставить команду, используемую для развертывания версии, а также код метода класса «from_path»?
5. @Tlaquetzal , Вот команда, которую я использовал при создании версии модели,
gcloud beta ai-platform versions create $VERSION_NAME --model $MODEL_NAME --runtime-version 1.15 --python-version 3.7 --origin gs://$BUCKET_NAME/custom_prediction_routine/model/ --package-uris gs://$BUCKET_NAME/custom_prediction_routine/custom_predict_code-0.1.tar.gz --prediction-class predictor.MyPredictor
и это метод класса from pathdef from_path(cls, model_dir): sys.stderr.write(str(model_dir)) return cls(model_dir)
Этот метод указывает неправильный путь
Ответ №1:
На основе кода, которым вы поделились, кажется, что вы не загружаете модель напрямую в from_path
, а отправляете путь непосредственно к вашему экземпляру Predictor.
Попробуйте вместо этого загрузить модель непосредственно в from_path
, например, используя модель keras:
@classmethod
def from_path(cls, model_dir):
model = keras.models.load_model(model_dir) # Load with Keras, or the appropriate format
return cls(model)
Если проблема не устранена, попробуйте выполнить предварительный запрос прогнозирования изнутри from_path
функции. Например:
@classmethod
def from_path(cls, model_dir):
model = keras.models.load_model(model_dir)
predictor = cls(model)
outputs = predictor.predict([[1,2,3,4,5]]) # Here goes your warm up prediction request
return predictor
Редактировать
О проблеме было сообщено здесь в системе отслеживания проблем Google. Ответ заключался в том, что как модель, так и все артефакты, которые будут использоваться из model_dir
, должны быть загружены во время выполнения from_path
и сохранены в классе predictor, если они собираются использоваться во время прогнозирования.
Комментарии:
1. @Tiaqueztal, спасибо за ваше предложение, я попробую это