Google 云 ML scipy.misc.imread 返回 <PIL.JpegImagePlugin.JpegImageFile>

Google Cloud ML scipy.misc.imread returning <PIL.JpegImagePlugin.JpegImageFile>

我正在运行宁以下片段:

import tensorflow as tf
import scipy.misc
from tensorflow.python.lib.io import file_io

file = file_io.FileIO('gs://BUCKET/data/celebA/000007.jpg', mode='r')
img = scipy.misc.imread(file)

如果我 运行 Cloud Console 中的那个片段,我会得到一个正确的数组。但是当 Cloud ML 中的相同片段 运行s 时,img 对象是

<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=178x218 at 0x7F1F8F26DA10>

This Whosebug answer suggests that libjpeg was not installed when PIL was installed. The Cloud ML Runtime Version list 表明对于 Tensorflow 0.12,libjpeg-dev 是已安装的 debian 软件包。

我能够在 Cloud ML 上重现这个问题,这似乎是 Tensorflow 0.12.1 中 file_io 版本的问题,如果安装了 Tensorflow 1.0 就会消失。

如果可以,请升级到 TF 1.0 版本。

如果您需要 0.12 版本,Cloud ML“0.12”运行时使用 TF 的官方 0.12.1 版本,但如果您愿意,可以上传自己的版本进行安装。我没有确切地知道问题何时得到解决,但从 2 月 2 日开始的 Nightly Tensorflow 构建似乎有效。