2015-11-16 55 views
5

TensorFlow'un iç yapısını CIFAR-10 model eğitiminin python kodundan temel C++ koduna basarak öğrenmeye çalışıyorum. Python kodunun adım adım ayıklanması için Eclipse + PyDev'i kullanma harika çalışıyor, ancak TensorFlow çekirdeğinin C++ koduna nasıl girileceğini bulamıyorum. Ayrı bir projede C++ kodunu oluşturmak için Eclipse CDT'yi kullanmayı denedim ve here açıklandığı gibi cifar10_train.py çalıştıran python işlemine hata ayıklayıcısını iliştirdim, ancak semboller hiçbir zaman yüklenmedi ve (açıkçası) ertelenmiş kesme noktaları hiçbir zaman vurulmadı.TensorFlow temel hata ayıklaması; Hata ayıklama sembolleri

Arkaplan ve kurulumu: here anlatıldığı ve benim CDT proje

bazel build -c dbg //tensorflow/cc:tutorials_example_trainer içeren bir Makefile kullanır gibi Ubuntu 14.04 LTS üzerinde çalıştırıyorum

, kaynaklardan TensorFlow kodu yüklü.

+2

Sembolleri –

+0

içerecek şekilde "--compilation_mode dbg" kullanarak yeniden TensorFlow kaynağından yeniden oluşturmanız gerekebilir. Bazel'in kullanım kılavuzunu doğru anlıyorsam, öneri kullandığım "-c dbg" bayrağına eşdeğerdir. .. – user5568317

+0

evet, eşdeğer. Hm ... Sorun şu ki tüm TensorFlow C sembolleri "python" ikili değil, ama dinamik olarak yüklenen ve SWIG aracılığıyla kullanılan .so dosyaları. İşte bir bağlantıyı buldum biraz alakalı görünüyordu - http://library.tebyan.net/en/Viewer/Text/164572/330 –

cevap

5

TensorFlow, C API'sini (tensorflow/tensorflow/core/client/tensor_c_api.cc'da tanımlandığı gibi) içeren _pywrap_tensorflow.so adlı bir kitaplık yükler. Benim durumumda

çalışma zamanı sırasında yüklenen kütüphane
~/tensorflow/local/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so
bulunan, ancak yerel kaynak kodundan inşa edildi kütüphane ~/.cache/bazel/_bazel_<username>/dbb3c677efbf9967e464a5c6a1e69337/tensorflow/bazel-out/local_linux-dbg/bin/tensorflow/python/_pywrap_tensorflow.so bulunuyordu.

Yerel olarak oluşturulan kitaplığı yüklenen kitaplığın üzerine kopyalamak ve sorunda tanımlanan python işlemine eklemek sorunu çözdü.

+0

İyi bir araştırma! –

İlgili konular