代码:

import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data#载入数据集
#当前路径
mnist = input_data.read_data_sets("MNISt_data", one_hot=True)

运行结果:

Extracting MNISt_data/train-images-idx3-ubyte.gz
Extracting MNISt_data/train-labels-idx1-ubyte.gz
Extracting MNISt_data/t10k-images-idx3-ubyte.gz
Extracting MNISt_data/t10k-labels-idx1-ubyte.gz

代码:

#每个批次的大小
#以矩阵的形式放进去
batch_size = 100
#计算一共有多少个批次
n_batch = mnist.train.num_examples // batch_size#定义三个placeholder
#28 x 28 = 784
x = tf.placeholder(tf.float32, [None, 784])
y = tf.placeholder(tf.float32, [None, 10])
keep_prob = tf.placeholder(tf.float32)
#学习率
lr = tf.Variable(0.001, dtype=tf.float32)#创建一个的神经网络
#输入层784,隐藏层一500,隐藏层二300,输出层10个神经元
#隐藏层
W1 = tf.Variable(tf.truncated_normal([784, 500], stddev=0.1))
b1 = tf.Variable(tf.zeros([500]) + 0.1)
L1 = tf.nn.tanh(tf.matmul(x, W1) + b1)
L1_drop = tf.nn.dropout(L1,keep_prob)W2 = tf.Variable(tf.truncated_normal([500, 300], stddev=0.1))
b2 = tf.Variable(tf.zeros([300]) + 0.1)
L2 = tf.nn.tanh(tf.matmul(L1_drop, W2) + b2)
L2_drop = tf.nn.dropout(L2,keep_prob)W3 = tf.Variable(tf.truncated_normal([300, 10], stddev=0.1))
b3 = tf.Variable(tf.zeros([10]) + 0.1)
prediction = tf.nn.softmax(tf.matmul(L2_drop, W3) + b3)#交叉熵代价函数
loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y, logits=prediction))#训练
train_step = tf.train.AdamOptimizer(lr).minimize(loss)#初始化变量
init = tf.global_variables_initializer()#结果存放在一个布尔型列表中
#tf.argmax(y, 1)与tf.argmax(prediction, 1)相同返回True,不同则返回False
#argmax返回一维张量中最大的值所在的位置
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(prediction, 1))#求准确率
#tf.cast(correct_prediction, tf.float32) 将布尔型转换为浮点型
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))with tf.Session() as sess:sess.run(init)#总共51个周期for epoch in range(51):#刚开始学习率比较大,后来慢慢变小sess.run(tf.assign(lr, 0.001 * (0.95 ** epoch)))#总共n_batch个批次for batch in range(n_batch):#获得一个批次batch_xs, batch_ys = mnist.train.next_batch(batch_size)sess.run(train_step, feed_dict={x:batch_xs, y:batch_ys, keep_prob:1.0})learning_rate = sess.run(lr)#训练完一个周期后测试数据准确率acc = sess.run(accuracy, feed_dict={x:mnist.test.images, y:mnist.test.labels, keep_prob:1.0})print("Iter" + str(epoch) + ", Testing Accuracy" + str(acc)+ ", Learning_rate" + str(learning_rate))

运行结果:

Iter0, Testing Accuracy0.9527, Learning_rate0.001
Iter1, Testing Accuracy0.9634, Learning_rate0.00095
Iter2, Testing Accuracy0.9692, Learning_rate0.0009025
Iter3, Testing Accuracy0.9711, Learning_rate0.000857375
Iter4, Testing Accuracy0.9716, Learning_rate0.000814506
Iter5, Testing Accuracy0.9757, Learning_rate0.000773781
Iter6, Testing Accuracy0.9737, Learning_rate0.000735092
Iter7, Testing Accuracy0.9779, Learning_rate0.000698337
Iter8, Testing Accuracy0.9776, Learning_rate0.00066342
Iter9, Testing Accuracy0.9778, Learning_rate0.000630249
Iter10, Testing Accuracy0.9764, Learning_rate0.000598737
Iter11, Testing Accuracy0.9787, Learning_rate0.0005688
Iter12, Testing Accuracy0.9776, Learning_rate0.00054036
Iter13, Testing Accuracy0.9779, Learning_rate0.000513342
Iter14, Testing Accuracy0.9805, Learning_rate0.000487675
Iter15, Testing Accuracy0.9786, Learning_rate0.000463291
Iter16, Testing Accuracy0.9786, Learning_rate0.000440127
Iter17, Testing Accuracy0.9806, Learning_rate0.00041812
Iter18, Testing Accuracy0.9768, Learning_rate0.000397214
Iter19, Testing Accuracy0.9789, Learning_rate0.000377354
Iter20, Testing Accuracy0.9793, Learning_rate0.000358486
Iter21, Testing Accuracy0.9802, Learning_rate0.000340562
Iter22, Testing Accuracy0.9783, Learning_rate0.000323534
Iter23, Testing Accuracy0.9802, Learning_rate0.000307357
Iter24, Testing Accuracy0.9807, Learning_rate0.000291989
Iter25, Testing Accuracy0.9804, Learning_rate0.00027739
Iter26, Testing Accuracy0.9801, Learning_rate0.00026352
Iter27, Testing Accuracy0.9776, Learning_rate0.000250344
Iter28, Testing Accuracy0.9804, Learning_rate0.000237827
Iter29, Testing Accuracy0.9807, Learning_rate0.000225936
Iter30, Testing Accuracy0.9804, Learning_rate0.000214639
Iter31, Testing Accuracy0.9805, Learning_rate0.000203907
Iter32, Testing Accuracy0.9794, Learning_rate0.000193711
Iter33, Testing Accuracy0.9806, Learning_rate0.000184026
Iter34, Testing Accuracy0.979, Learning_rate0.000174825
Iter35, Testing Accuracy0.9811, Learning_rate0.000166083
Iter36, Testing Accuracy0.9807, Learning_rate0.000157779
Iter37, Testing Accuracy0.9809, Learning_rate0.00014989
Iter38, Testing Accuracy0.9812, Learning_rate0.000142396
Iter39, Testing Accuracy0.9806, Learning_rate0.000135276
Iter40, Testing Accuracy0.9809, Learning_rate0.000128512
Iter41, Testing Accuracy0.9812, Learning_rate0.000122087
Iter42, Testing Accuracy0.9812, Learning_rate0.000115982
Iter43, Testing Accuracy0.9814, Learning_rate0.000110183
Iter44, Testing Accuracy0.9801, Learning_rate0.000104674
Iter45, Testing Accuracy0.9812, Learning_rate9.94403e-05
Iter46, Testing Accuracy0.9814, Learning_rate9.44682e-05
Iter47, Testing Accuracy0.9807, Learning_rate8.97448e-05
Iter48, Testing Accuracy0.9817, Learning_rate8.52576e-05
Iter49, Testing Accuracy0.9811, Learning_rate8.09947e-05
Iter50, Testing Accuracy0.9812, Learning_rate7.6945e-05

Tensorflow—继续优化,使MNIST准确率98%以上相关推荐

  1. [TensorFlow深度学习入门]实战九·用CNN做科赛网TibetanMNIST藏文手写数字数据集准确率98%+

    [TensorFlow深度学习入门]实战九·用CNN做科赛网TibetanMNIST藏文手写数字数据集准确率98.8%+ 我们在博文,使用CNN做Kaggle比赛手写数字识别准确率99%+,在此基础之 ...

  2. TensorFlow XLA优化原理与示例

    TensorFlow XLA优化原理与示例 XLA概述 XLA(加速线性代数)是用于优化TensorFlow计算的线性代数的域特定编译器.结果是在服务器和移动平台上的速度,内存使用率和可移植性得到了改 ...

  3. 如何在Tensorflow.js中处理MNIST图像数据

    by Kevin Scott 凯文·斯科特(Kevin Scott) 如何在Tensorflow.js中处理MNIST图像数据 (How to deal with MNIST image data i ...

  4. Tensorflow逻辑回归处理MNIST数据集

    #1:导入所需的软件 import tensorflow as tf ''' 获取mnist数据放在当前文件夹下,利用input_data函数解析该数据集 train_img和train--label ...

  5. TensorFlow XLA优化与Memory

    TensorFlow XLA优化与Memory XLA概述 XLA(加速线性代数)是用于优化TensorFlow计算的线性代数的域特定编译器.结果是在服务器与移动平台上的速度,内存使用率与可移植性得到 ...

  6. TensorFlow+TVM优化NMT神经机器翻译

    TensorFlow+TVM优化NMT神经机器翻译 背景 神经机器翻译(NMT)是一种自动化的端到端方法,具有克服传统基于短语的翻译系统中的弱点的潜力.本文为全球电子商务部署NMT服务. 目前,将Tr ...

  7. python cnn代码详解图解_基于TensorFlow的CNN实现Mnist手写数字识别

    本文实例为大家分享了基于TensorFlow的CNN实现Mnist手写数字识别的具体代码,供大家参考,具体内容如下 一.CNN模型结构 输入层:Mnist数据集(28*28) 第一层卷积:感受视野5* ...

  8. Tensorflow模型优化 端侧部署 tflite 量化 稀疏 quantization sparsity

    Tensorflow模型优化 文章目录 Tensorflow模型优化 为什么要模型优化 端侧部署 模型优化方式 Quantization 工具包支持 32 bit float ->16 bit ...

  9. Tensorflow 学习笔记:Mnist 手写训练集调试,准确率变为0.1的解决办法及如何将准确率调高到98%以上

    学习笔记:Mnist 手写训练集 加入隐藏层后准确率变为0.1的解决办法 提高神经网络准确率的尝试 提高准确率:调小每次训练的批次大小 提高准确率:使用交叉熵 更改优化器及学习率 小结 提高神经网络准 ...

最新文章

  1. 《音乐商店》第4集:自动生成StoreManager控制器
  2. 词嵌入应用_神经词嵌入的法律应用
  3. js高级—查询商品案例
  4. java语言中的浮点型数据分为,Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float型和double型,其中dou...
  5. 8.8.8.8,Google推出免费DNS解析服务器
  6. 二维vector容器读取txt坐标
  7. 一个核物理学霸为何两次收到BlackHat的邀请
  8. 怎么创建自己的oracle,oracle 创建自己的wm_concat
  9. 深搜(DFS),Image Perimeters
  10. python的matplotlib画图时独立窗口_解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题...
  11. 苹果手机长截屏_发现一个手机必备软件
  12. 《九阴真经:iOS黑客攻防秘籍》新书发布
  13. 栈 -- 以及用栈实现计算器
  14. unity3d:路径点移动,使用dotween(模拟蝴蝶飞舞)
  15. python入门自学软件手机版_python编程入门
  16. You-get 批量下载
  17. 彻底解决CUDA安装,从翻译文档开始_Compiling CUDA Programs
  18. 结构方程模型的建立、拟合、评估、筛选和结果展示全过程
  19. 目标检测——梯度均衡机制GHM(Gradient Harmonized Mechanism)的理解
  20. 吃鸡过后末日题材成新宠?6月末日新游扎堆,绝不只是代号:生机

热门文章

  1. 常年霸榜 Amazon 数据结构与算法领域 TOP3
  2. gitlab的安装和使用
  3. 干货 | “青年AI自强计划项目”首节讲座视频、课件分享
  4. 独家 | 数据分析@爱可可-爱生活是否在用机器学习算法运营微博
  5. LeetCode: 58. Length of Last Word
  6. 2020 诺贝尔奖「第一棒」:英美三位科学家摘得桂冠!
  7. 股价暴跌逾26%、市值蒸发2000亿,元宇宙没搞到钱?
  8. 「分布式」艺术创作:20分钟+1080显卡,这个AI就能创造复杂作品 | 开源
  9. 我在 CMU 的八年博士生涯...........
  10. java 中文分词 比较_中文分词工具评估:chinese-segmentation-evaluation