使用TensorFlow作为依赖项部署Google Cloud Functions

时间:2018-09-07 16:48:57

标签: python tensorflow deployment keras google-cloud-functions

我想使用Google Cloud Functions部署以tensorflow作为后端的,以JSON(包括HDF5中的权重)保存的keras模型。

当我未在requirements.txt中指定tensorflow时,部署成功。尽管在GCP中测试该功能时,我得到了一条错误消息,指出找不到tensorflow。

Error: function crashed. Details:
No module named 'tensorflow'

首先,我发现Google没有为环境提供预安装的tensorflow感到很奇怪。

但是现在,如果我在requirements.txt中指定了tensorflow,则部署失败并显示错误消息

ERROR: (gcloud.beta.functions.deploy) OperationError: 
code=3, message=Build failed: USER ERROR:
`pip_download_wheels` had stderr output:
 Could not find a version that satisfies the 
requirement tensorflow (from -r /dev/stdin (line 5)) 
(from versions: )
No matching distribution found for tensorflow (from -r 
/dev/stdin (line 5))

是否可以通过Cloud Functions获得tensorflow或Google故意阻止安装以使我们能够使用ML Engine?

1 个答案:

答案 0 :(得分:5)

编辑Tensorflow 1.13.1 now supports Python 3.7.


上一个答案:

Google Cloud Functions当前没有使用tensorflow的方法。

但是,这并不是因为Google故意阻止了它:tensorflow package仅提供了CPython 2.7、3.3、3.4、3.5和3.6的内置发行版,而是the Cloud Functions Python runtime is based on Python version 3.7.0,所以pip(正确)找不到任何兼容的发行版。

当前有some compatibility issues with TensorFlow and Python 3.7,但是一旦修复,tensorflow应该可以安装在Google Cloud Functions上。不过,到目前为止,您必须使用ML Engine。