python – Tensorflow MNIST(权重和偏差变量)

python – Tensorflow MNIST(权重和偏差变量),第1张

概述我正在学习如何使用Tensorflow和MNIST教程,但我在本教程的某个方面阻止了. 这是提供的代码: from tensorflow.examples.tutorials.mnist import input_dataimport tensorflow as tfmnist = input_data.read_data_sets("MNIST_data/", one_hot=True) 我正在学习如何使用Tensorflow和MNIST教程,但我在本教程的某个方面阻止了.

这是提供的代码:

from tensorflow.examples.tutorials.mnist import input_dataimport tensorflow as tfmnist = input_data.read_data_sets("MNIST_data/",one_hot=True)x = tf.placeholder(tf.float32,[None,784])W = tf.Variable(tf.zeros([784,10]))b = tf.Variable(tf.zeros([10]))y = tf.nn.softmax(tf.matmul(x,W) + b)y_ = tf.placeholder(tf.float32,10])cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y),reduction_indices=[1]))train_step = tf.train.GradIEntDescentoptimizer(0.5).minimize(cross_entropy)saver = tf.train.Saver()init = tf.initialize_all_variables()sess = tf.Session()sess.run(init)for i in range(1000):  batch_xs,batch_ys = mnist.train.next_batch(100)  sess.run(train_step,Feed_dict={x: batch_xs,y_: batch_ys})

但实际上我根本不明白变量“W”(重量)和“b”(偏差)是如何在计算时改变的?
在每个批次上,它们初始化为零,但之后?
我根本没有看到他们将要改变的代码在哪里?

非常感谢你提前!

解决方法 TensorFlow variables将其状态从一次run()调用维持到下一次.在您的程序中,它们将初始化为零,然后在训练循环中逐步更新.

更改变量值的代码由此行隐式创建:

train_step = tf.train.GradIEntDescentoptimizer(0.5).minimize(cross_entropy)

在TensorFlow中,tf.train.Optimizer是创建用于更新变量的 *** 作的类,通常基于相对于那些变量的一些张量(例如,损失)的梯度.默认情况下,当你
调用Optimizer.minimize(),TensorFlow创建 *** 作以更新给定张量(在本例中为cross_entropy)所依赖的所有变量.

当您调用sess.run(train_step)时,它会运行包含这些更新 *** 作的图形,因此指示TensorFlow更新变量的值.

总结

以上是内存溢出为你收集整理的python – Tensorflow MNIST(权重和偏差变量)全部内容,希望文章能够帮你解决python – Tensorflow MNIST(权重和偏差变量)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1194291.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存