來源:tensorflow學(xué)習(xí)筆記(八):dropout
tensorflow:dropout
我們都知道dropout對于防止過擬合效果不錯 dropout一般用在全連接的部分脆侮,卷積部分不會用到dropout,輸出曾也不會使用dropout,適用范圍[輸入族壳,輸出) 1.tf.nn.dropout(x, keep_prob, noise_shape=None, seed=None, name=None) 2.tf.nn.rnn_cell.DropoutWrapper(rnn_cell, input_keep_prob=1.0, output_keep_prob=1.0)
普通dropout
def dropout(x, keep_prob, noise_shape=None, seed=None, name=None)
#x: 輸入
#keep_prob: 名字代表的意思
#return:包裝了dropout的x魂挂。訓(xùn)練的時候用绪撵,test的時候就不需要dropout了
#例:
w = tf.get_variable("w1",shape=[size, out_size])
x = tf.placeholder(tf.float32, shape=[batch_size, size])
x = tf.nn.dropout(x, keep_prob=0.5)
y = tf.matmul(x,w)
rnn中的dropout
def rnn_cell.DropoutWrapper(rnn_cell, input_keep_prob=1.0, output_keep_prob=1.0):
#例
lstm_cell = tf.nn.rnn_cell.BasicLSTMCell(size, forget_bias=0.0, state_is_tuple=True)
lstm_cell = tf.nn.rnn_cell.DropoutWrapper(lstm_cell, output_keep_prob=0.5)
#經(jīng)過dropout包裝的lstm_cell就出來了