için tf.trainable_variables
değiştirdi:
cell = rnn_cell.BasicLSTMCell(num_nodes)
with tf.variable_scope("LSTM") as vs:
# Execute the LSTM cell here in any way, for example:
for i in range(num_steps):
output[i], state = cell(input_data[i], state)
lstm_variables = tf.get_collection(tf.GraphKeys.VARIABLES, scope=vs.name)
son satırı liste anlamada eşdeğer olduğunu
Not (kısmen Rafal cevabı kopyalanmış) Rafal'ın kodu.
Temel olarak, tensorflow, tf.all_variables()
veya tf.get_collection(tf.GraphKeys.VARIABLES)
tarafından getirilebilen genel bir değişkenler koleksiyonunu depolar. tf.get_collection()
işlevinde scope
(kapsam adı) belirtirseniz, kapsamları belirtilen kapsamın altında olan koleksiyonda yalnızca tensörleri (bu durumda değişkenler) getireceksiniz.
EDIT: Yalnızca eğitilebilir değişkenler almak için tf.GraphKeys.TRAINABLE_VARIABLES
'u kullanabilirsiniz. Fakat vanilya BasicLSTMCell herhangi bir eğitilebilir olmayan değişkeni başlatmadığından, her ikisi de işlevsel olarak eşdeğer olacaktır. Varsayılan grafik koleksiyonlarının tam listesi için, this'u kontrol edin.
Bu mükemmel, teşekkürler. Tf.trainable_variables() 'nin kapsamına saygı duyduğunun farkında değildim, ama sanırım geçmişte bu mantıklı! – bge0
"tf.trainable_variables()" yerine tf.all_variables() 'yi eklemek daha iyi bir seçim olacaktır. Temel olarak, eğitilebilir değişkenlere sahip olmayan, ancak yine de başlatılması gereken optimizer gibi şeyler olduğu için. – bge0
Teşekkürler, haklısınız. Kodu güncelledim. –