解决C++调用python 时,使用tensorflow库GPU加速出现错误:IndexError: list index out of range

首先感谢大佬,参考文章:Ubuntu16.04 OMNeT++配置 C++调用Python和TensorFlow_weixin_43789697的博客-CSDN博客

由于使用的是虚拟环境里的tensorflow,所以Cmakelists.txt部分头文件和库文件的路径要进行修改(根据自己的路径位置进行修改):

cmake_minimum_required(VERSION 2.8)
project(cython)
include_directories(
    /home/kaka/anaconda3/envs/tflow/include/python3.7m

)

include_directories(
    /home/kaka/anaconda3/envs/tflow/lib

)
add_executable(main
    main.cpp)
target_link_libraries(main
    /home/kaka/anaconda3/envs/tflow/lib/libpython3.7m.so
)

其次解决tensorflow库GPU加速出现错误:IndexError: list index out of range

问题出现的原因:正常python里面import tensorflow时会从启动参数里抓变量(argc,argv),然后C++里调用python就没有继承这些变量。import tf的时候访问这些变量就出错了。


解决方法:手动把C启动时候的变量传进去。

Py_Initialize();

之后加上

PySys_SetArgv(0,(wchar_t**)argv);

问题解决!

你可能感兴趣的:(tensorflow,人工智能,python,c++)