2016-05-14 100 views
1

我试图在AWS服务器(AMI ID:Deep Learning(ami-77e0da1d))上使用tensorflow部署一个Flask Web应用程序,以获取图像分类应用程序。使用Flask在Web服务器上部署Tensorflow

当我在服务器上使用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

我可以在必要时

+0

“LD_LIBRARY_PATH”环境变量的值是什么?它看起来像TensorFlow无法找到CUDA库.... – mrry

+0

它是/ usr/local/cuda/lib64 – Mostafa

回答

0

I S提供更多的细节通过在CPU上而不是在GPU上部署我的问题,这对我来说已经足够了。

1

出于安全原因,开始启动Web应用程序之前,已清除LD_LIBRARY_PATH的值。例如,请参阅this question,其中注意到Flask应用程序中的值为os.environ['LD_LIBRARY_PATH'],尽管它可能在启动Apache时设置。

至少有两个选项:

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

  • 基于this answer,你可以修改你的脚本执行subprocess呼叫,并设置LD_LIBRARY_PATH/usr/local/cuda/lib64子进程。