Python 如何在theano';中不仅获得一个展开的k步截断BPTT梯度;扫描';,但也有一个每个(第一到第k)的组成部分的梯度?

Python 如何在theano';中不仅获得一个展开的k步截断BPTT梯度;扫描';,但也有一个每个(第一到第k)的组成部分的梯度?,python,machine-learning,neural-network,theano,Python,Machine Learning,Neural Network,Theano,如果我使用带有truncate_gradient=k(int>0)的ano.scan,我可以获得递归神经网络的截断BPTT梯度。该梯度将被计算为时间RNN中向后k步的展开(成为k层前馈神经网络FFNN)。 基本上(根据理论),RNN的截断梯度(通过在时间上向后展开RNN到k步计算)应包括展开FFNN的所有k层的梯度之和(从向后展开RNN到k步获得) 基本上,我正在寻找如何得到该总和中的每个分量。。。 在我看来,您可以很容易地获得RNN的最终截断梯度(由带有truncate_gradient=k的

如果我使用带有truncate_gradient=k(int>0)的ano.scan,我可以获得递归神经网络的截断BPTT梯度。该梯度将被计算为时间RNN中向后k步的展开(成为k层前馈神经网络FFNN)。 基本上(根据理论),RNN的截断梯度(通过在时间上向后展开RNN到k步计算)应包括展开FFNN的所有k层的梯度之和(从向后展开RNN到k步获得)

基本上,我正在寻找如何得到该总和中的每个分量。。。 在我看来,您可以很容易地获得RNN的最终截断梯度(由带有truncate_gradient=k的扫描op表示)(此功能是开箱即用的),但要获得扫描op/RNN的截断梯度的展开和的每个分量是相当棘手的

我已经尝试过的:

我查看了theano scan op的内部结构,特别是通过“grad”方法。。。它的代码相当复杂

此外,我还尝试打印结果渐变的图形-我尝试打印相同RNN的图形,其中truncate_gradients=1和truncate_gradients=10(使用theano.printing.pydotprint)-这些图形是相同的:(

然后我使用了anao.printing.pydotprint和scan_graphs=True 必须打印扫描的内部内容。但我失败了,出现了这样的异常:

AttributeError:“扫描”对象没有属性“fn”

我还在谷歌上搜索这些问题——什么都没有。 在theano用户中询问-尚未得到任何响应