使用 Flask 在 Web 服务器上部署 Tensorflow

Deploy Tensorflow on a web server with Flask

我正在尝试在 AWS 服务器(AMI ID:深度学习 (ami-77e0da1d))上部署带有 tensorflow 的 Flask 网络应用程序,用于图像分类应用程序。

当我在服务器中使用 tensorflow 时,它工作正常,但是当我尝试将它与应用程序一起使用时,我得到:

No data received ERR_EMPTY_RESPONSE

在 error.log 文件的末尾,我有:

F tensorflow/stream_executor/cuda/cuda_dnn.cc:204] could not find cudnnCreate in cudnn DSO; dlerror: /usr/local/lib/python2.7/dist-packages/tensorflow/python/_pywrap_tensorflow.so: undefined symbol: cudnnCreate [Sat May 14 11:30:54.124034 2016] [core:notice] [pid 1332:tid 139695334930304] AH00051: child pid 2999 exit signal Aborted (6), possible coredump in /etc/apache2

我的 CuDNN 版本:4.0.7

如有必要,我可以提供更多详细信息

我通过部署在 CPU 而不是 GPU 上解决了我的问题,这对我来说已经足够了。

出于安全原因,LD_LIBRARY_PATH 的值在启动您的网络应用程序之前被清除。参见示例 this question,它观察到 os.environ['LD_LIBRARY_PATH'] 的值在 Flask 应用程序中为空,即使它可能在您启动 Apache 时设置。

至少有几个选项:

  • 您可以使用 Apache 的 mod_env 来设置传播到您的 Flask 应用程序的环境变量。

  • 基于this answer,您可以修改脚本以执行subprocess调用,并将子进程的LD_LIBRARY_PATH设置为/usr/local/cuda/lib64 .