我正在尝试将以下玩具片段作为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语句没有给出任何错误。
答案 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