python – Tensorflow MNIST(权重和偏差变量)
发布时间:2020-12-20 12:11:24 所属栏目:Python 来源:网络整理
导读:我正在学习如何使用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.pla
我正在学习如何使用Tensorflow和MNIST教程,但我在本教程的某个方面阻止了.
这是提供的代码: from tensorflow.examples.tutorials.mnist import input_data import tensorflow as tf mnist = 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中, 当您调用sess.run(train_step)时,它会运行包含这些更新操作的图形,因此指示TensorFlow更新变量的值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |