700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > TF:基于CNN(2+1)实现MNIST手写数字图片识别准确率提高到99%

TF:基于CNN(2+1)实现MNIST手写数字图片识别准确率提高到99%

时间:2020-07-22 00:33:19

相关推荐

TF:基于CNN(2+1)实现MNIST手写数字图片识别准确率提高到99%

TF:基于CNN(2+1)实现MNIST手写数字图片识别准确率提高到99%

导读

与Softmax回归模型相比,使用两层卷积的神经网络模型借助了卷积的威力,准确率高非常大的提升。

目录

输出结果

代码实现

输出结果

Extracting MNIST_data/train-images-idx3-ubyte.gzExtracting MNIST_data/train-labels-idx1-ubyte.gzExtracting MNIST_data/t10k-images-idx3-ubyte.gzExtracting MNIST_data/t10k-labels-idx1-ubyte.gzstep 0, training accuracy 0.1step 1000, training accuracy 0.98step 2000, training accuracy 0.96step 3000, training accuracy 1step 4000, training accuracy 1step 5000, training accuracy 0.98step 6000, training accuracy 0.98step 7000, training accuracy 1step 8000, training accuracy 1step 9000, training accuracy 1step 10000, training accuracy 1step 11000, training accuracy 1step 12000, training accuracy 1step 13000, training accuracy 0.98step 14000, training accuracy 1step 15000, training accuracy 1step 16000, training accuracy 1step 17000, training accuracy 1step 18000, training accuracy 1step 19000, training accuracy 1

代码实现

#TF:基于CNN实现MNIST手写数字识别准确率提高到99%import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data……if __name__ == '__main__':mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)x = tf.placeholder(tf.float32, [None, 784])y_ = tf.placeholder(tf.float32, [None, 10])x_image = tf.reshape(x, [-1, 28, 28, 1]) #x_image就是输入的训练图像W_conv1 = weight_variable([5, 5, 1, 32])b_conv1 = bias_variable([32])h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1) #是真正进行卷积计算,再选用ReLU作为激活函数h_pool1 = max_pool_2x2(h_conv1) #调用函数max_pool_2x2 进行一次池化操作。W_conv2 = weight_variable([5, 5, 32, 64])b_conv2 = bias_variable([64])h_conv2 = tf.nn.relu(conv2d(h_pool1, W_conv2) + b_conv2)h_pool2 = max_pool_2x2(h_conv2)W_fc1 = weight_variable([7 * 7 * 64, 1024])b_fc1 = bias_variable([1024])h_pool2_flat = tf.reshape(h_pool2, [-1, 7 * 7 * 64])h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, W_fc1) + b_fc1)keep_prob = tf.placeholder(tf.float32)h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob)W_fc2 = weight_variable([1024, 10])b_fc2 = bias_variable([10])y_conv = tf.matmul(h_fc1_drop, W_fc2) + b_fc2 cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y_, logits=y_conv))train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy)correct_prediction = tf.equal(tf.argmax(y_conv, 1), tf.argmax(y_, 1))accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))sess = tf.InteractiveSession()sess.run(tf.global_variables_initializer())for i in range(20000): # 训练20000步batch = mnist.train.next_batch(50)# 每100步报告一次在验证集上的准确度if i % 100 == 0:train_accuracy = accuracy.eval(feed_dict={x: batch[0], y_: batch[1], keep_prob: 1.0})print("step %d, training accuracy %g" % (i, train_accuracy))train_step.run(feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5})print("test accuracy %g" % accuracy.eval(feed_dict={x: mnist.test.images, y_: mnist.test.labels, keep_prob: 1.0}))

相关文章

TF:基于CNN(2+1)实现MNIST手写数字识别准确率提高到99%

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。