我试图通过将CIFAR-10模型训练的python代码转换为其核心C++代码来学习TensorFlow的内部结构.使用Eclipse + PyDev逐步调试python代码很有效,但是我找不到如何进入TensorFlow核心的C++代码.我试图使用Eclipse CDT建立在一个单独的项目中的C++代码,调试器附加到蟒蛇进程运行cifar10_train.py的描述在这里,但这些符号不会被装载和(显然)延迟断点永远不会命中.
背景和设置:
我在Ubuntu 14.04 LTS上运行,从这里描述的源安装TensorFlow代码,我的CDT项目使用包含Makefile的Makefile
bazel build -c dbg //tensorflow/cc:tutorials_example_trainer.
TensorFlow加载一个名为_pywrap_tensorflow.so包含其C API(如中所定义tensorflow/tensorflow/core/client/tensor_c_api.cc)的库.
在我的情况下,在运行时加载的库位于,
~/tensorflow/local/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so
但是从本地源代码构建的库位于~/.cache/bazel/_bazel_<username>/dbb3c677efbf9967e464a5c6a1e69337/tensorflow/bazel-out/local_linux-dbg/bin/tensorflow/python/_pywrap_tensorflow.so.
在加载的库上复制本地构建的库,并附加到问题中定义的python进程解决了问题.
| 归档时间: |
|
| 查看次数: |
3155 次 |
| 最近记录: |