代码:

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)#创建一个的神经网络
#输入层784,隐藏层一1000,隐藏层二1000,隐藏层三1000,输出层10个神经元
#隐藏层
W1 = tf.Variable(tf.truncated_normal([784, 1000], stddev=0.1))
b1 = tf.Variable(tf.zeros([1000]) + 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([1000, 1000], stddev=0.1))
b2 = tf.Variable(tf.zeros([1000]) + 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([1000, 1000], stddev=0.1))
b3 = tf.Variable(tf.zeros([1000]) + 0.1)
L3 = tf.nn.tanh(tf.matmul(L2_drop, W3) + b3)
L3_drop = tf.nn.dropout(L3,keep_prob)W4 = tf.Variable(tf.truncated_normal([1000, 10], stddev=0.1))
b4 = tf.Variable(tf.zeros([10]) + 0.1)
prediction = tf.nn.softmax(tf.matmul(L3_drop, W4) + b4)#交叉熵
loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y, logits=prediction))#使用梯度下降法
train_step = tf.train.GradientDescentOptimizer(0.2).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)#总共10个周期for epoch in range(10):#总共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:0.7})#训练完一个周期后测试数据准确率test_acc = sess.run(accuracy, feed_dict={x:mnist.test.images, y:mnist.test.labels, keep_prob:1.0})#训练完一个周期后训练数据准确率train_acc = sess.run(accuracy, feed_dict={x:mnist.train.images, y:mnist.train.labels, keep_prob:1.0})print("Iter" + str(epoch) + ", Testing Accuracy" + str(test_acc)+ ", Testing Accuracy" + str(train_acc))

运行结果:

#没有使用Droupout
Iter0, Testing Accuracy0.9408, Testing Accuracy0.946473
Iter1, Testing Accuracy0.9566, Testing Accuracy0.968982
Iter2, Testing Accuracy0.963, Testing Accuracy0.976364
Iter3, Testing Accuracy0.9651, Testing Accuracy0.982218
Iter4, Testing Accuracy0.9706, Testing Accuracy0.985836
Iter5, Testing Accuracy0.9707, Testing Accuracy0.987618
Iter6, Testing Accuracy0.9719, Testing Accuracy0.989018
Iter7, Testing Accuracy0.9742, Testing Accuracy0.990255
Iter8, Testing Accuracy0.9737, Testing Accuracy0.991036
Iter9, Testing Accuracy0.9738, Testing Accuracy0.9916

运行结果:

#使用Droupout
#过拟合情况很小
Iter0, Testing Accuracy0.9175, Testing Accuracy0.9134
Iter1, Testing Accuracy0.9291, Testing Accuracy0.926327
Iter2, Testing Accuracy0.9362, Testing Accuracy0.935982
Iter3, Testing Accuracy0.9399, Testing Accuracy0.940564
Iter4, Testing Accuracy0.9433, Testing Accuracy0.9454
Iter5, Testing Accuracy0.9465, Testing Accuracy0.949091
Iter6, Testing Accuracy0.9479, Testing Accuracy0.952145
Iter7, Testing Accuracy0.9504, Testing Accuracy0.956018
Iter8, Testing Accuracy0.9523, Testing Accuracy0.956855
Iter9, Testing Accuracy0.9542, Testing Accuracy0.9586

Tensorflow—Droupout相关推荐

  1. Python(TensorFlow框架)实现手写数字识别系统

    手写数字识别算法的设计与实现 本文使用python基于TensorFlow设计手写数字识别算法,并编程实现GUI界面,构建手写数字识别系统.这是本人的本科毕业论文课题,当然,这个也是机器学习的基本问题 ...

  2. Python TensorFlow框架 实现手写数字识别系统

    手写数字识别算法的设计与实现 本文使用python基于TensorFlow设计手写数字识别算法,并编程实现GUI界面,构建手写数字识别系统.这是本人的本科毕业论文课题,当然,这个也是机器学习的基本问题 ...

  3. TensorFlow 2019

    numpy  pandas  sklearn 算法 神经网络的Math 动手实现网络结构 应用 TensorFlow框架 图像案例 Machine Learning VS Deep Learning ...

  4. 人工智能AI:TensorFlow Keras PyTorch MXNet PaddlePaddle 深度学习实战 part1

    日萌社 人工智能AI:TensorFlow Keras PyTorch MXNet PaddlePaddle 深度学习实战 part1 人工智能AI:TensorFlow Keras PyTorch ...

  5. 梯度下降、牛顿法凸优化、L1、L2正则化、softmax、Batchnorm、droupout、Targeted Dropout详解

    一.梯度下降 问题提出:虽然给定一个假设函数,我们能够根据cost function知道这个假设函数拟合的好不好,但是毕竟函数有这么多,总不可能一个一个试吧?因此我们引出了梯度下降:能够找出cost ...

  6. 【深度学习系列(六)】:RNN系列(3):基于Tensorflow的RNN的实战之英文名字生成

    了解RNN的基本单元及其改进之后,接下来我们使用RNN进行一个简单的名字生成实战来了解实际使用中需要注意的地方及要点,废话不多说... 目录 一.数据预处理及加载 1.数据预处理 2.数据加载 二.R ...

  7. tensorflow 1.x Saver(保存与加载模型) 预测

    20201231 tensorflow 1.X 模型保存 https://blog.csdn.net/qq_35290785/article/details/89646248 保存模型 saver=t ...

  8. python 虚拟环境 tensorflow GPU

    拿到一个新的容器之后,怎么创建一个独立的GPU训练环境呢?之前弄的时候总是零零散散的,现在把它总结在这里,供自己以及有需要的朋友查阅. conda创建 1.1 下载anaconda wget -c h ...

  9. API pytorch tensorflow

    pytorch与tensorflow API速查表 方法名称 pytroch tensorflow numpy 裁剪 torch.clamp(x, min, max) tf.clip_by_value ...

最新文章

  1. oracle的quit命令,Oracle的启动和关闭
  2. mqtt android封装,Android之MQTT封装使用
  3. 字符串与字符串函数 - 字符串输出 常用字符串函数
  4. springBoot Maven改成war包
  5. ABAP system landscape和vue项目webpack构建的一种实践
  6. 深度学习数字仪表盘识别_深度学习之手写数字识别项目(Sequential方法amp;Class方法进阶版)...
  7. 腾讯云搭svn服务器,腾讯云使用笔记二: 安装svn服务器及web同步
  8. 二十九、PHP框架Laravel学习笔记——Debugbar 调试器
  9. const,readonly 这些你真的懂吗? 也许会被面试到哦。。。
  10. 《普林斯顿微积分读本》笔记-第2章三角学回顾
  11. python 隐藏excel的列和行
  12. 五线谱软件测试初学者,学习五线谱(初学者专用).pdf
  13. python学习笔记_week19
  14. Pumpkin Garden 靶场实战
  15. php自动上传到onedrive,让iPhone里的照片自动上传备份到OneDrive
  16. 2026 年全球开源数目将超 3 亿!中国开源爆发进行时,关于中国开源生态的答案都在这里了
  17. oracle找回删除的数据
  18. 不同点处泰勒展开的区别和意义
  19. 贝叶斯模型的理解(1)
  20. 虫师 Selenium3 基于Python 生成HTML测试报告误区记录

热门文章

  1. 【软件差错警示钟】一起软件差错造成的多名病人死亡事故
  2. 软件研发之道——有关软件的思考
  3. python——图像处理3(均值偏移、改变亮度、图像修复、图像融合)
  4. tensorflow笔记:多层CNN代码分析
  5. 过去50年最重要的统计学思想!
  6. 独家 | Facebook AI发布DETR一种基于Transformer的对象检测方法!
  7. 数据蒋堂 | 迭代聚合语法
  8. 剑指offer:二叉树的下一个节点
  9. 《可解释机器学习》中文资源重磅来袭!复旦研究生翻译,原作者转发点赞!...
  10. 推荐一些视觉SLAM的深度学习方法(下)