scipy.misc.imresize не работает в ml-движке GCP

Я пытаюсь отправить следующий фрагмент игрушки в качестве задания в GCP ml-engine:

import tensorflow as tf
import numpy as np
import scipy.misc

x = np.zeros([10, 10, 1])
y = scipy.misc.imresize(x[:, :, 0], [50, 50, 1], interp='nearest')
print(y)
print(y.shape)

После запуска задания на сервере выдается следующая ошибка:

File "/root/.local/lib/python2.7/site-packages/teste/test.py", line 6, in <module>
y = scipy.misc.imresize(x[:, :, 0], [50, 50, 1], interp='nearest')
AttributeError: 'module' object has no attribute 'imresize'

Он отлично работает на локальном компьютере, и, согласно документам Cloud-ML, пакет scipy поддерживается. По-видимому, это не проблема самого модуля, так как оператор import не выдает никакой ошибки.

1 ответ

Решение

scipy.misc.imresize требует установки PIL, который вы, вероятно, установили локально (поскольку он работает).

Чтобы ваш код работал правильно в облаке, вы должны убедиться, что pillow установлено. Если вы создали свой собственный setup.py включают pillow в списке требований. Если вам нужно создать свой собственный, создайте setup.py как это:

from setuptools import find_packages
from setuptools import setup

REQUIRED_PACKAGES = ['pillow']

setup(
    name='trainer',
    version='0.1',
    install_requires=REQUIRED_PACKAGES,
    packages=find_packages(),
    include_package_data=True,
    description='My trainer application package.'
)

( источник, с одной важной модификацией, packages атрибут)

См. Официальную документацию по CloudML Engine для получения дополнительной информации о рекомендуемой структуре каталогов и инструкциях по упаковке.

Это было устарело в 1.3.0. В отличие от использования Подушки, переустановите scipy 1.0.0

pip install scipy==1.0.0

Или же

pip3 install scipy==1.0.0
Другие вопросы по тегам