我正试图通过从CIFAR-10模型训练的python代码到核心C++代码来学习TensorFlow的内部结构。使用Eclipse+PyDev一步一步地调试python代码非常有效,但我无法找到如何逐步进入TensorFlow核心的C++代码。我尝试使用Eclipse在一个单独的项目中构建C++代码,并将调试器附加到运行cifar10_train.py的python进程,如描述的这里,但是符号从未加载,而且(显然)延迟断点从未命中。
背景和设置:
我在Ubuntu14.04LTS上运行,从描述的TensorFlow源代码中安装了这里代码,我的CDT项目使用包含
bazel build -c dbg //tensorflow/cc:tutorials_example_trainer。
发布于 2015-11-18 10:30:24
TensorFlow加载一个名为_pywrap_tensorflow.so的库,该库包含它的C(如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进程解决了这个问题。
https://stackoverflow.com/questions/33746071
复制相似问题