在张量流中创建多层递归神经网络

时间:2016-08-30 02:56:11

标签: tensorflow recurrent-neural-network lstm gated-recurrent-unit

我正在尝试用张量流中的GRU单元(以及LSTM单元)创建一个多层递归神经网络。我查看了多个来源,包括官方教程。但是我一直看到多层RNN的以下模式(这里用GRU单元显示)。

cell = GRUCell(num_neurons)  # Or LSTMCell(num_neurons)
cell = DropoutWrapper(cell, output_keep_prob=dropout)
cell = MultiRNNCell([cell] * num_layers)

此代码段取自RNN Tensorflow Introduction。我对[cell] * num_layers的理解是,同一个对象cell在列表中被引用num_layer次。因此,MultiRNNCell赢得了 QSettings Source("/path/filename.plist",QSettings::NativeFormat); QSettings Destination("/path/filename.ini",QSettings::IniFormat); QStringList allkeyList = Source.allKeys(); for(int i=0;r<allkeyList.size();++i) { Destination.setValue(allkeyList[i], Source.value(allkeyList[i])); } 创建一个深层网络,其中每一层都具有与前一层相同的权重。如果有人能够澄清这里到底发生了什么,那将是非常有见地的。

1 个答案:

答案 0 :(得分:2)

我假设您已经很好地理解了TensorFlow的概念和执行模型。如果没有,请查看tensorflow.org上的教程,特别是Variables one。

GRUCell的构造函数不会向Graph添加任何节点。只有在调用实例(即cell())时,变量和操作才会被添加到图形中。当调用MultiRNNCell时,它将在调用子层之前创建不同的可变范围。这样每个图层都有自己的变量。