5

私は、CIFAR-10 モデル トレーニングの Python コードからコア C++ コードに足を踏み入れることで、TensorFlow の内部構造を学ぼうとしています。Python コードの段階的なデバッグに Eclipse+PyDev を使用するとうまくいきますが、TensorFlow コアの C++ コードにステップインする方法が見つかりません。別のプロジェクトで Eclipse CDT を使用して C++ コードをビルドし、ここcifar10_train.pyで説明されているように実行中の Python プロセスにデバッガーをアタッチしようとしましたが、シンボルが読み込まれることはなく、(明らかに) 遅延ブレークポイントがヒットすることもありません。

背景とセットアップ:

私はUbuntu 14.04 LTSで実行しており、ここで説明されているようにソースからTensorFlowコードをインストールし、私のCDTプロジェクトは次を含むMakefileを使用しています

bazel build -c dbg //tensorflow/cc:tutorials_example_trainer.

4

1 に答える 1

6

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 プロセスにアタッチすると、問題が解決しました。

于 2015-11-18T10:30:24.047 に答える