双向LSTM的Dropout层怎么加
来源:4-36 动手实现RNN-LSTM循环神经网络(十一):实际训练和测试
追梦逐梦白日做梦
2018-04-13
with tf.variable_scope("ner_variables", reuse=tf.AUTO_REUSE): fw_cell = tf.nn.rnn_cell.BasicLSTMCell(args.rnn_size, state_is_tuple=True) bw_cell = tf.nn.rnn_cell.BasicLSTMCell(args.rnn_size, state_is_tuple=True) if is_training: fw_cell = tf.nn.rnn_cell.DropoutWrapper(fw_cell, output_keep_prob=0.5) bw_cell = tf.nn.rnn_cell.DropoutWrapper(bw_cell, output_keep_prob=0.5) fw_cell = tf.nn.rnn_cell.MultiRNNCell([fw_cell for _ in range(args.num_layers)], state_is_tuple=True) bw_cell = tf.nn.rnn_cell.MultiRNNCell([bw_cell for _ in range(args.num_layers)], state_is_tuple=True) else: fw_cell = tf.nn.rnn_cell.MultiRNNCell([fw_cell for _ in range(args.num_layers)], state_is_tuple=True) bw_cell = tf.nn.rnn_cell.MultiRNNCell([bw_cell for _ in range(args.num_layers)], state_is_tuple=True)
我用上面的方法加了tf.nn.rnn_cell.DropoutWrapper层,训练时候的准确率可以到达83%,可是测试的时候却只有10%多,这是怎么回事,这里的代码不对劲
写回答
1回答
-
你的代码和本课程没有关系。双向 LSTM 是你在别的地方学习的代码吧?
你只给出这一小段代码,我怎么知道哪里出了问题。而且训练时候的准确率和测试时候差很多不是不可能。
谢谢理解。
00
相似问题