scipy.misc.imresize不能在GCP ml-engine中工作

时间:2017-04-17 14:06:37

标签: python scipy google-cloud-ml google-cloud-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包。显然,这不是模块本身的问题,因为import语句没有给出任何错误。

2 个答案:

答案 0 :(得分:3)

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

source,有一项重要修改,packages属性)

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

答案 1 :(得分:0)

在1.3.0中已弃用。 与使用枕头相反,重新安装scipy 1.0.0

pip install scipy==1.0.0

pip3 install scipy==1.0.0