【问题标题】:why do we build a dictionary of variables in tensorflow为什么我们要在 tensorflow 中构建变量字典
【发布时间】:2017-08-03 19:37:05
【问题描述】:

在示例代码中,我看到人们在 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) `

谢谢!

【问题讨论】:

  • 这完全是一个舒适的问题,特别是将所有这些作为参数一起传递给一个函数,例如这样非常好,但结果将是相同的

标签: python dictionary tensorflow


【解决方案1】:

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

【讨论】:

  • 是通过do实现的吗,例如:list(weights.values()) ?
  • 与变量字典相比,name_scope 能做类似的事情吗?
猜你喜欢
  • 2018-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-23
  • 1970-01-01
  • 2014-08-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多