【问题标题】:Deploy Tensorflow on a web server with Flask使用 Flask 在 Web 服务器上部署 Tensorflow
【发布时间】:2016-09-10 14:44:51
【问题描述】:

我正在尝试在 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:未定义符号:cudnnCreate [2016 年 5 月 14 日星期六 11:30:54.124034] [core:notice] [pid 1332:tid 139695334930304] AH00051: child pid 2999 exit signal Aborted (6), /etc/apache2 中可能的核心转储

我的 CuDNN 版本:4.0.7

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

【问题讨论】:

  • LD_LIBRARY_PATH 环境变量的值是多少?看起来 TensorFlow 无法找到 CUDA 库....
  • 它是 /usr/local/cuda/lib64

标签: apache flask tensorflow tensorflow-serving


【解决方案1】:

出于安全原因,正在启动您的网络应用程序之前清除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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-19
      • 1970-01-01
      • 1970-01-01
      • 2017-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-06
      相关资源
      最近更新 更多