在调试

时间:2018-04-18 08:24:47

标签: python visual-studio debugging tensorflow

我在TensorFlow(Python)中实现了一个模型,我之前使用Eigen在C ++中编程,它按预期工作。但是这个模型在Python中并没有像预期的那样工作,可能是因为我错误地定义了张量,或者我正在混合尺寸。

我试图通过使用Visual Studio(2017)调试器来解决这些问题(如果不同的IDE更适合这个,那么我是所有的耳朵,但我更愿意坚持使用VS),但是张量不评估任何东西 - 我可以理解这一点,因为张量定义了一个操作,而不是一个数据对象(它只是在调用session.run之后产生一个数据对象。)

然而,恒定和可变张量 - 以及仅在这些张量之上构建的任何其他张量 - 都带有预定义数据。嘿,为什么不能通过调试UI检查值呢?

所以我的问题是:有没有办法通过一些扩展来检查数据?

例如,如果我在C ++和Eigen中工作,我可以按照here所述使用Eigen.natvis。 TensorFlow有类似的东西吗?它不仅仅是看到评估值的问题。在调试时看到像形状等等的东西会很高兴。

如果有人有好的建议,我也会对TensorFlow代码的其他调试技术持开放态度。

1 个答案:

答案 0 :(得分:4)

TensorFlow包含# Basic importing of BibTex files library(RefManageR) # User RefManageR to import bibtex references and convert to tibble bib = ReadBib("MyEndnoteBibtexExportFile.bibtex") d.bibEQL = as.data.frame(bibEQL) ,TensorFlow模型的调试器,您可以在其中逐步执行每个执行步骤,检查值,停止NaN等。请参阅程序员指南TensorFlow Debugger和{ {3}}了解更多信息。

然而,

tfdbg设置和使用可能有点麻烦。检查中间值的快速替代方法是The Debugger Dashboard。 TensorFlow包含一些其他use tf.Print operations,您可能会发现它们可用于检查一些基本内容。

编辑:另一个有用的工具是debugging operations。这允许您使用TensorFlow操作,就像它们是常规Python操作一样(它们返回操作的结果而不是图形对象),因此这是检查某些特定代码是否符合您期望的好方法。