2016-05-14 96 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子進程。