Подпрограмма пользовательского прогнозирования GCP не может включить зависимость jsonschema, указанную в setup.py

Согласно документации GCP AI Platform, здесь, Развертывание настраиваемой процедуры прогнозирования должно позволять включать зависимости PyPI. Я включил свою зависимость от jsonschema, как показано ниже, в свой setup.py скрипт:

from setuptools import setup
from setuptools import find_packages


REQUIRED_PACKAGES = ['jsonschema']

setup(
    name='custom_code',
    version='1.0.2',
    scripts=['predictor.py', 'preprocess.py'],
    install_requires=REQUIRED_PACKAGES,
    packages=find_packages(),
    include_package_data=True
)

но получил это сообщение об ошибке при развертывании:

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: 'str' object has no attribute 'decode' (Error code: 0)"

Та же ошибка сохранялась при указании такой версии REQUIRED_PACKAGES = ['jsonschema==3.2.0']. Затем я использовал более низкую версию:

from setuptools import setup
from setuptools import find_packages


REQUIRED_PACKAGES = ['jsonschema==3.0.0']

setup(
    name='custom_code',
    version='1.0.2',
    scripts=['predictor.py', 'preprocess.py'],
    install_requires=REQUIRED_PACKAGES,
    packages=find_packages(),
    include_package_data=True
)

но теперь получил эту ошибку:

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: problem in predictor - DistributionNotFound: The 'jsonschema' distribution was not found and is required by the application (Error code: 0)"

Что здесь может пойти не так?


person George Liu    schedule 19.11.2020    source источник


Ответы (1)


Оказывается, первоначальная ошибка Bad model detected with error: "Failed to load model: Unexpected error when loading the model: 'str' object has no attribute 'decode' (Error code: 0)" на самом деле была вызвана проблемой формата модели. Похоже, это известная проблема с TensorFlow Keras (хотя моя версия TF 1.15, цитируемая версия TF была 2.1.0). Однажды я использовал формат TensorFlow SavedModel ошибка немедленно исчезла, и я также смог включить зависимость jsonchema в файл setup.py как есть.

person George Liu    schedule 20.11.2020