multiply.py
я есть вопрос относительно встраивания Python в приложение C ++. Установка выглядит следующим образом: у меня есть большое приложение на C ++, которое генерирует некоторые данные (отображает изображения в реальном времени) и отображает их. Я также обучил нейронную сеть на python, используя тензорный поток, который будет принимать эти изображения.
Моя идея заключалась в том, чтобы встраивать python и отправлять данные в виде массива numpy, прогнозировать с помощью нейронной сети и возвращать другой обработанный массив numpy для отображения (в C ++). Я сделал несколько базовых тестов без тензорного потока на стороне Python, чтобы почувствовать, как встроить Python в C и тому подобное, и, похоже, это работает.
Однако, как только я помещу «import tenorflow» в любой скрипт Python, который я хочу импортировать, я получу NULL из PyImport_ImportModule в части c ++.
например
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)
Во втором случае я по-прежнему получаю в stdout сообщение от tenorflow о том, что он нашел cuda и т. Д., Но затем импорт модуля завершается неудачно.
Моя установка на Windows 10 x64, Anaconda Python 3.5, tenenflow-0.12 и CUDA 8. Кто-нибудь сталкивался с подобной проблемой? Другие модули, которые я тестировал (numpy, pil, scipy), кажется, загружаются нормально.
Если это выглядит так, как будто это не может быть решено, я прибегну к какому-то IPC между частью c ++ и python.