0

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

4

2 回答 2

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

来源,有一个重要的修改,packages属性)

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

于 2017-04-17T14:25:23.307 回答
1

它在 1.3.0 中已弃用。与使用 Pillow 不同,重新安装 scipy 1.0.0

pip install scipy==1.0.0

或者

pip3 install scipy==1.0.0
于 2019-05-29T06:16:30.433 回答