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

时间:2016-05-14 11:53:15

标签: apache flask tensorflow tensorflow-serving

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

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

  

没有收到数据ERR_EMPTY_RESPONSE

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

  

F tensorflow / stream_executor / cuda / cuda_dnn.cc:204]在cudnn DSO中找不到cudnnCreate; dlerror:/usr/local/lib/python2.7/dist-packages/tensorflow/python/_pywrap_tensorflow.so:undefined symbol:cudnnCreate   [6月14日星期六11:30:54.124034 2016] [核心:通知] [pid 1332:tid 139695334930304] AH00051:子pid 2999退出信号中止(6),/ etc / apache2中可能的coredump

我的CuDNN版本:4.0.7

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

2 个答案:

答案 0 :(得分:1)

出于安全原因,在启动Web应用程序之前,LD_LIBRARY_PATH的值已被清除。请参阅示例this question,它注意到Flask应用内的os.environ['LD_LIBRARY_PATH']值为空,即使它可能在您启动Apache时设置。

至少有几个选择:

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

  • 根据this answer,您可以修改脚本以执行subprocess调用,并为子流程设置LD_LIBRARY_PATH/usr/local/cuda/lib64

答案 1 :(得分:0)

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