【发布时间】:2018-08-28 05:23:51
【问题描述】:
我是 tensorflow 和神经网络的新手。我试图理解,执行梯度下降函数后如何更新权重?示例代码如下。
with graph.as_default():
weights = tf.Variable(
tf.truncated_normal([image_size * image_size, num_labels]))
biases = tf.Variable(tf.zeros([num_labels]))
logits = tf.matmul(train_dataset, weights) + biases
loss = tf.reduce_mean(
tf.nn.softmax_cross_entropy_with_logits(labels=train_labels, logits=logits))
loss=loss+tf.multiply(beta, nn.l2_loss(weights))
optimizer = tf.train.GradientDescentOptimizer(0.5).minimize(loss)
with tf.Session(graph=graph) as session:
tf.global_variables_initializer().run()
_, l, predictions = session.run([optimizer, loss, train_prediction])
如果我理解正确,当运行“session.run()”时,变量权重和偏差将被更新。它会在“GradientDescentOptimizer”具有计数的任何值的上下文中更新,还是只是另一组“截断正常”值?
如果正则化应用如下,
loss=loss+tf.multiply(beta, nn.l2_loss(weights))
那么,张量流如何知道在正则化权重的上下文中更新权重的正确变量是什么?我没有得到 TF 的工作。
【问题讨论】:
标签: python tensorflow neural-network