我正在尝试用张量流中的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]));
}
创建一个深层网络,其中每一层都具有与前一层相同的权重。如果有人能够澄清这里到底发生了什么,那将是非常有见地的。
答案 0 :(得分:2)
我假设您已经很好地理解了TensorFlow的概念和执行模型。如果没有,请查看tensorflow.org上的教程,特别是Variables one。
GRUCell的构造函数不会向Graph添加任何节点。只有在调用实例(即cell())时,变量和操作才会被添加到图形中。当调用MultiRNNCell时,它将在调用子层之前创建不同的可变范围。这样每个图层都有自己的变量。