PythonをC++アプリケーションに埋め込むことに関して質問があります。セットアップは以下の通りです:私はいくつかのデータを生成する(リアルタイムでイメージをレンダリングする)、それらを表示する大規模なC++アプリケーションを持っています。私はまた、これらの画像を受け入れるテンソルフローを使って、Pythonでニューラルネットワークを訓練しました。C++でPythonを埋め込む際のテンソルフローをインポートするとNULLが返される
私の考えは、pythonを埋め込み、numpy配列としてデータを送信し、ニューラルネットワークを使用して予測し、別の処理されたnumpy配列を戻して(C++で)表示することでした。私はPythonの上にテンソルフローを持たない基本テストをいくつか行って、PythonをCなどに埋め込む感覚を得ました。それはうまくいくようです。
しかし、いったん私がインポートしたいPythonスクリプトに "import tensorflow"を配置すると、PyImport_ImportModuleからC++パートにNULLが返されます。
import numpy as np
def foo(img):
return np.clip(img * 2.0, 0, 255).astype(np.uint8)
が問題ありません。しかし、次にはない。第2のケースで
import numpy as np
import tensorflow as tf #this causes the fail
def foo(img):
return np.clip(img * 2.0, 0, 255).astype(np.uint8)
を、私はまだそれがCUDAなどを発見したが、その後、モジュールのインポートが失敗したことをtensorflowから標準出力にメッセージを取得します。
私の設定は、Windows 10 x64、Anaconda Python 3.5、tensorflow-0.12およびCUDA 8です。誰も同じような問題を抱えていましたか?私がテストした他のモジュール(numpy、pil、scipy)はうまく読み込めるようです。
解決できないように見える場合は、私はC++の部分とPythonの間で何らかの種類のIPCを利用します。
申し訳ありません。私は他の人々のためのコード全体を投稿して、それが有用であると感じるかもしれません。 – zzj