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.

Ответы на вопрос(2)

Ваш ответ на вопрос