我正在编写一个应用程序,以使用学校的MNIST数据集识别手写数字,我添加了一个偏见,并想写出它可以提高准确性,但实际上并没有帮助。一个时期后,无偏差的准确度为91.6%,有偏差的为91.53%。经过更多的时代之后,两者之间并没有太大的区别。这让我非常惊讶,有人可以告诉我为什么偏见对我的网络没有帮助吗?也许代码是错误的,但我不这么认为。
import tensorflow as tf
iN = 28*28
hN = 150
oN = 10
lr = 0.2
epochs = 15
wih = tf.Variable(tf.truncated_normal((iN,hN), stddev=0.1))
who = tf.Variable(tf.truncated_normal((hN,oN), stddev=0.1))
bh = tf.Variable(tf.zeros((1,hN)))
bo = tf.Variable(tf.zeros((1,oN)))
x = tf.placeholder(tf.float32, shape=[1,28*28])
y = tf.placeholder(tf.float32, shape=[1,10])
hidden = tf.sigmoid(tf.matmul(x,wih) + bh)
output = tf.sigmoid(tf.matmul(hidden, who) + bo)
loss = tf.reduce_mean(tf.squared_difference(y, output))
train_step = tf.train.GradientDescentOptimizer(lr).minimize(loss)