0
我寫過一個代碼來設計Tensorflow中的長期短期存儲網絡。代碼工作後,我做了很多的變化,並閱讀本網站的一些意見。 這部分代碼是很重要的解釋:解釋張量流中lstm網絡的重用變量
tf.reset_default_graph()
with tf.variable_scope("conv1"):
cell= tf.contrib.rnn.LSTMCell(n_hidden_units, forget_bias=0.0, state_is_tuple=True,reuse=tf.get_variable_scope().reuse)
outputs, final_state = tf.nn.dynamic_rnn(cell, X_in, initial_state=init_state, time_major=False,scope="conv1")
洛杉磯功能的情節永遠是這樣: enter image description here。
在某個點訓練損失函數減少和驗證損失函數增加的地方。我認爲它不應該是這樣的。我想問一下,在我的代碼中,變量重用是否正確?如果你知道損失函數圖有什麼問題?
預先感謝您。
編輯:
我想,也許我應該張貼我的代碼,所以它會更容易理解,因爲我無法找到一個解決方案:如果您的驗證損失開始增加
tf.reset_default_graph()
x = tf.placeholder(tf.float32, [None, n_steps, n_inputs])
y = tf.placeholder(tf.float32, [None, n_classes])
weights = {
# (147, 128),tf.random_normal_initializer(mean=0.0, stddev=0.1)
'in': tf.get_variable('W_in',shape=[n_inputs, n_hidden_units],initializer=tf.truncated_normal_initializer(stddev=0.5)),
# (128, 5)
'out': tf.get_variable('W_out',shape=[n_hidden_units, n_classes],initializer=tf.truncated_normal_initializer(stddev=0.5))}
biases = {
# (128,)
'in': tf.get_variable('b_in',shape=[n_hidden_units, ],initializer=tf.random_normal_initializer(stddev=0.5)),
# (5,)
'out': tf.get_variable('b_out', shape=[n_classes, ],initializer=tf.random_normal_initializer(stddev=0.5))}
def lstm_cell():
return tf.contrib.rnn.BasicLSTMCell(n_hidden_units, forget_bias=0.0, state_is_tuple=True,reuse=tf.get_variable_scope().reuse)
def RNN(X, weights, biases):
X = tf.reshape(X, [-1, n_inputs])
X_in = tf.nn.tanh(tf.matmul(X, weights['in']) + biases['in'])
X_in=tf.nn.dropout(X_in,keep_prob=0.5)
X_in = tf.reshape(X_in, [-1, n_steps, n_hidden_units])
with tf.variable_scope("conv1"):
cell = lstm_cell()
cell = tf.contrib.rnn.DropoutWrapper(cell, output_keep_prob=0.5)
init_state = cell.zero_state(tf.shape(X_in)[0], dtype=tf.float32)
outputs, final_state = tf.nn.dynamic_rnn(cell, X_in, initial_state=init_state, time_major=False,scope="conv1")
outputs = tf.unstack(tf.transpose(outputs, [1,0,2]))
results = tf.matmul(outputs[-1], weights['out']) + biases['out']
return results
pred = RNN(x, weights, biases)
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=pred, labels=y))
train_op = tf.train.AdamOptimizer(0.0025).minimize(cost)
我嘗試了不同數量的神經元,但情節是相同的。我嘗試使用等於0.5的可行性退出,並且之前的繪圖是結果。 – mahmood227