scipy.misc.imresize 不适用于 GCP ml-engine

scipy.misc.imresize not working in GCP ml-engine

我正在尝试提交以下玩具片段作为 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 包。显然这不是模块本身的问题,因为导入语句没有给出任何错误。

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.'
)

(sourcepackages 属性有一项重要修改)

有关推荐的目录布局和打包说明的更多信息,请参阅官方 CloudML 引擎 documentation

它在 1.3.0 中已被弃用。 与使用 Pillow 相反,重新安装 scipy 1.0.0

pip install scipy==1.0.0

或者

pip3 install scipy==1.0.0