我的代码中有一个bug,但由于theano的工作方式,很难找到它的确切原因。你知道吗
按照异常详细信息中的提示,我设置了theano.config.optimizer='None'
和theano.config.exception_verbosity='high'
,但这还不够。你知道吗
例如,在我的例子中,两个张量之间的点积有一个问题。stacktrace让我经历了很多,找到了一个特定的函数,它似乎包含了对theano.tensor.dot
的有问题的调用,但是我找不到代码的确切位置,因为我试图通过keras实现一些东西,它变得更加复杂和纠结。你知道吗
有什么方法可以获得有关apply节点的更多详细信息吗?我尝试过使用StepMode,因为它似乎附加到节点上,但是如果有一种方法可以让该工具打印执行节点中代码的确切行,我不知道它是什么。当问题发生时,我尝试使用它来打印stacktrace,但它打印的stacktrace与异常几乎相同。你知道吗
您应该尝试使用anaotest_values。这样,异常将准确地在发生错误的行上引发,而不是在编译图形之后。你知道吗
您需要将
theano.config.compute_test_value
标志更改为'raise'
,这样,如果存在没有test\u值的输入张量,您将得到一个错误,以确保所有的测试计算都将传播到错误发生的点。你知道吗如果您想在代码中找到使用
theano.tensor.dot
的点,可以使用使用traceback.print_stack
的包装器代码对其进行monkeypatch:这样,无论何时调用
theano.tensor.dot
(在修补之后),它都会向您显示堆栈,就像回溯消息中的堆栈一样,并且仍然执行它的工作。请注意,我对theano不是很熟悉,所以这是一个通用的python调试解决方案,可能有一些特定于theano的方法可以让您执行类似的操作。你知道吗相关问题 更多 >
编程相关推荐