def test_lnlstm_nparams_hid_init_layer():
# test that you can see layers through hid_init
l_inp = InputLayer((2, 2, 3))
l_inp_h = InputLayer((2, 5))
l_inp_h_de = DenseLayer(l_inp_h, 7)
l_inp_cell = InputLayer((2, 5))
l_inp_cell_de = DenseLayer(l_inp_cell, 7)
l_lstm = LNLSTMLayer(l_inp, 7, hid_init=l_inp_h_de, cell_init=l_inp_cell_de)
# directly check the layers can be seen through hid_init
layers_to_find = [l_inp, l_inp_h, l_inp_h_de, l_inp_cell, l_inp_cell_de,
l_lstm]
assert lasagne.layers.get_all_layers(l_lstm) == layers_to_find
# 7*n_gates + 3*n_peepholes + 4
# the 7 is because we have hid_to_gate, in_to_gate and bias and
# layer normalization for each gate
# 4 is for the W and b parameters in the two DenseLayer layers
print lasagne.layers.get_all_params(l_lstm, trainable=True)
assert len(lasagne.layers.get_all_params(l_lstm, trainable=True)) == 37
# LSTM bias params(4) + LN betas(2*#gate) (+ Dense bias params(1) * 2
assert len(lasagne.layers.get_all_params(l_lstm, regularizable=False)) == 15
评论列表
文章目录