为什么我们在tensorflow中构建变量字典

时间:2017-08-03 19:37:05

标签: python dictionary tensorflow

在示例代码中,我看到人们在张量流中构建变量(权重/偏差)的字典。我想知道与单独定义变量相比,这有什么好处

字典风格:

weights = { 
    'encoder_w1': tf.Variable(tf.random_normal([n_input, n_hidden_1], stddev= sd), name='encoder_w1'), 
    'encoder_w2': tf.Variable(tf.random_normal([n_hidden_1, n_hidden_2], stddev= sd), name='encoder_w2'), 
    'decoder_w1': tf.Variable(tf.random_normal([n_hidden_2, n_hidden_1], stddev= sd), name='decoder_w1'), 
    'decoder_w2': tf.Variable(tf.random_normal([n_hidden_1, n_input], stddev= sd), name='decoder_w2')
}
biases = { 
    'encoder_b1': tf.Variable(tf.random_normal([n_hidden_1], stddev= sd), name='encoder_b1'), 
    'encoder_b2': tf.Variable(tf.random_normal([n_hidden_2], stddev= sd), name='encoder_b2'), 
    'decoder_b1': tf.Variable(tf.random_normal([n_hidden_1], stddev= sd), name='decoder_b1'), 
    'decoder_b2': tf.Variable(tf.random_normal([n_input], stddev= sd), name='decoder_b2') 
}

单独的风格:

encoder_w1 = tf.Variable(tf.random_normal([n_input, n_hidden_1], stddev= sd), name='encoder_w1')
encoder_w2 = tf.Variable(tf.random_normal([n_input, n_hidden_1], stddev= sd), name='encoder_w2')
decoder_w1 = tf.Variable(tf.random_normal([n_input, n_hidden_1], stddev= sd), name='decoder_w1')
#... (you get the idea) `

谢谢!

1 个答案:

答案 0 :(得分:0)

“字典样式”可以让您更容易一次引用整个组(例如,传递给函数)。