使用 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
.
我正在尝试在 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
.