【发布时间】:2017-02-12 01:25:52
【问题描述】:
我有一个关于将 python 嵌入 C++ 应用程序的问题。设置如下:我有一个大型 C++ 应用程序,它生成一些数据(实时渲染图像)并显示它们。我还使用 tensorflow 在 python 中训练了一个神经网络,它将接受这些图像。
我的想法是嵌入 python 并将数据作为 numpy 数组发送,使用神经网络进行预测并取回另一个处理过的 numpy 数组以显示(在 C++ 中)。我在 python 端做了一些没有 tensorflow 的基本测试,以感受在 c 中嵌入 python 的感觉,它似乎有效。
但是,一旦我将“import tensorflow”放入我想要导入的任何 python 脚本中,我将从 C++ 部分的 PyImport_ImportModule 中获得一个 NULL。
例如
import numpy as np
def foo(img):
return np.clip(img * 2.0, 0, 255).astype(np.uint8)
工作正常。但以下没有:
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)
在第二种情况下,我仍然在 tensorflow 的 stdout 中收到消息,它已经找到 cuda 等,但是模块导入失败。
我的设置是在 Windows 10 x64、Anaconda Python 3.5、tensorflow-0.12 和 CUDA 8 上。有人遇到过类似的问题吗?我测试过的其他模块(numpy、pil、scipy)似乎可以正常加载。
如果它看起来无法解决,我将求助于 c++ 部分和 python 之间的某种 IPC。
【问题讨论】:
标签: python c++ tensorflow embedding