Ошибка компоновки при использовании кода встраивания Python в код C ++ (Tensorflow с CUDA) - PullRequest
1 голос
/ 13 марта 2019

Я установил колесо тензорного потока с поддержкой графического процессора на jetson TX2 (рекомендуется NVIDIA. Так что тензор потока установлен в

/. Местные / Библиотека / python3.5 / сайт-пакеты / tensorflow

Кроме того, LDD тензорного потока кажется идеальным.

ldd libtensorflow_framework.so linux-vdso.so.1 => (0x0000007f89736000) libcublas.so.9.0 => /usr/local/cuda-9.0/lib64/libcublas.so.9.0 (0x0000007f86c56000) libcuda.so.1 => /usr/lib/aarch64-linux-gnu/tegra/libcuda.so.1 (0x0000007f86275000) libcudnn.so.7 => /usr/lib/aarch64-linux-gnu/libcudnn.so.7 (0x0000007f77bcb000) libcufft.so.9.0 => /usr/local/cuda-9.0/lib64/libcufft.so.9.0 (0x0000007f70af0000) libcurand.so.9.0 => /usr/local/cuda-9.0/lib64/libcurand.so.9.0 (0x0000007f6cab3000) libcudart.so.9.0 => /usr/local/cuda-9.0/lib64/libcudart.so.9.0 (0x0000007f6ca4e000) libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000007f6ca3a000) libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000007f6c98d000) libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000007f6c961000) libstdc ++. so.6 => /usr/lib/aarch64-linux-gnu/libstdc++.so.6 (0x0000007f6c7d1000) libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000007f6c7b0000) libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000007f6c669000) /lib/ld-linux-aarch64.so.1 (0x0000005562b57000) librt.so.1 => /lib/aarch64-linux-gnu/librt.so.1 (0x0000007f6c651000) libnvrm_gpu.so => ​​/usr/lib/aarch64-linux-gnu/tegra/libnvrm_gpu.so (0x0000007f6c61c000) libnvrm.so => ​​/usr/lib/aarch64-linux-gnu/tegra/libnvrm.so (0x0000007f6c5e4000) libnvidia-fatbinaryloader.so.28.2.1 => /usr/lib/aarch64-linux-gnu/tegra/libnvidia-fatbinaryloader.so.28.2.1 (0x0000007f6c57e000) libnvos.so => ​​/usr/lib/aarch64-linux-gnu/tegra/libnvos.so (0x0000007f6c561000)

Тогда у меня работают записные книжки Jupyter, а также я могу импортировать тензорный поток из консоли python3, но я хочу встроить код тензорного потока в проект C ++.

Я использую такой код для встраивания в python.

Py_Initialize();

//Import
PyRun_SimpleString("import sys");
PyRun_SimpleString("import tensorflow as tf");

Это выдает эту ошибку:

    Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/ubuntu/.local/lib/python3.5/site-packages/tensorflow/__init__.py", line 22, in <module>
    from tensorflow.python import pywrap_tensorflow  # pylint: disable=unused-import
  File "/home/ubuntu/.local/lib/python3.5/site-packages/tensorflow/python/__init__.py", line 49, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "/home/ubuntu/.local/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow.py", line 74, in <module>
    raise ImportError(msg)
ImportError: Traceback (most recent call last):
  File "/home/ubuntu/.local/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "/home/ubuntu/.local/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 28, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
  File "/home/ubuntu/.local/lib/python3.5/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 24, in swig_import_helper
    _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
  File "/usr/lib/python3.5/imp.py", line 242, in load_module
    return load_dynamic(name, filename, file)
  File "/usr/lib/python3.5/imp.py", line 342, in load_dynamic
    return _load(spec)
ImportError: libcusolver.so.9.0: cannot open shared object file: No such file or directory


Failed to load the native TensorFlow runtime.

See https://www.tensorflow.org/install/install_sources#common_installation_problems

for some common reasons and solutions.  Include the entire stack trace
above this error message when asking for help.
Traceback (most recent call last):
  File "<string>", line 1, in <module>
NameError: name 'tf' is not defined
Traceback (most recent call last):
  File "<string>", line 1, in <module>
NameError: name 'tf_config' is not defined
Traceback (most recent call last):
  File "<string>", line 1, in <module>
NameError: name 'tf' is not defined

Версия тензорного потока - 11, поэтому совместима с cuda 9.0. но я не знаю, почему встроенный код не может найти библиотеки cuda. ​​

...