2016-05-14 11 views
1

Ich versuche, eine Flask-Webanwendung mit Tensorflow auf einem AWS-Server (AMI-ID: Deep Learning (ami-77e0da1d)) für eine Bildklassifizierungs-App bereitzustellen.Tensorflow auf einem Webserver mit Flask implementieren

Wenn ich in dem Server verwenden tensorflow, es funktioniert normal, aber wenn ich versuche, es mit der App zu verwenden, erhalte ich:

No data received ERR_EMPTY_RESPONSE

Am Ende der Datei error.log, ich habe:

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

Meine CuDNN Version: 4.0.7

kann ich weitere Informationen, die notwendig sind, wenn

+0

Welchen Wert hat Ihre Umgebungsvariable 'LD_LIBRARY_PATH'? Es sieht so aus, als ob TensorFlow die CUDA-Bibliotheken nicht finden kann. – mrry

+0

es ist/usr/local/cuda/lib64 – Mostafa

Antwort

0

I s Ich habe mein Problem gelöst, indem ich eine CPU anstelle einer GPU bereitgestellt habe, und das war genug für mich.

1

Der Wert LD_LIBRARY_PATH wird aus Sicherheitsgründen vor dem Start der Webanwendung gelöscht. Siehe zum Beispiel this question, die beobachtet, dass der Wert os.environ['LD_LIBRARY_PATH'] in der Flask-App leer ist, auch wenn er beim Start von Apache gesetzt sein könnte.

Es gibt mindestens ein paar Optionen:

  • Sie Apache verwenden könnte mod_env die Umgebungsvariablen zu setzen, die auf Ihre Flask App ausbreiten.

  • Basierend auf this answer, könnten Sie das Skript ändern, um einen subprocess Anruf auszuführen, und stellen Sie die LD_LIBRARY_PATH-/usr/local/cuda/lib64 für den Subprozess.

Verwandte Themen