在基本跑完识别代码后,再来谈一谈自己对代码的理解;

1      前向传播过程文件(mnist_forward.py)

第一个函数get_weight(shape, regularizer);

定义了w的初值和正则化损失加入losses中

第二个函数get_bias(shape):

对参数b进行设定

第三个函数forward(x, regularizer):

加入激活函数tf.nn.relu(tf.matmul(x, w1) + b1)

对输出y进行设定

此段代码在前面博客中讲过,比较简单,就不再过多叙述

2   反向传播过程文件(mnist_backward.py) 

 ce = tf.nn.sparse_softmax_cross_entropy_with_logits(logits=y, labels=tf.argmax(y_, 1))

在计算交叉熵之前,通常要用到softmax层来计算结果的概率分布。因为softmax层并不会改变最终的分类结果(排序),所以,tensorflow将softmax层与交叉熵函数进行封装,形成一个函数方便计算:                                                           tf.nn.softmax_cross_entropy_with_logits(logits= , labels=)。

为了加速计算过程,针对只有一个正确答案(例如MNIST识别)的分类问题

这里用到softmax()函数;可以参考我前面博文。地址:  https://www.cnblogs.com/fcfc940503/p/10983906.html https://www.cnblogs.com/fcfc940503/p/10985129.html

读入数据

xs, ys = mnist.train.next_batch(BATCH_SIZE)

            _, loss_value, step = sess.run([train_op, loss, global_step], feed_dict={x: xs, y_: ys})

用 mnist.train.next_batch(BATCH_SIZE)随机从训练集中抽取BATCH_SIZE个样本输入神经网络;feed_dict={x: xs, y_: ys}喂入x和y_;
测试过程文件(mnist_test.py)     在测试过程中,导入了引入 time 模块、tensorflow、input_data、前向传播mnist_forward、反向传播 mnist_backward 模块和 os 模块,并规定程序 5 秒的循环间隔时间。
with tf.Graph().as_default() as g:
     此函数利用tf.Graph()复现之前定义的计算图,就是将定义好的神将网络在计算图中复现
        correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
此函数是计算模型在测试集上的准确率;

其中

y 表示在一组数据(即 batch_size 个数据)上神经网络模型的预测结果,y 的形状为[batch_size,10],每一行表示一张图片的识别结果。通过tf.argmax()函数取出每张图片对应向量中最大值元素对应的索引值,组成长度为输入数据 batch_size 个的一维数组。通过 tf.equal()函数判断预测结果张量和实际标签张量的每个维度是否相等,若相等则返回 True,不 相等则返回 False。

通过 tf.cast() 函数将得到的布 尔 型 数 值 转 化 为 实 数 型 ,

再通过tf.reduce_mean()函数求平均值,最终得到神经网络模型在本组数据上的准确率

以上内容主要讲解mnist 数据集的识别源码中我认为不好理解或者还没理解的内容,主要目的是为了熟悉该代码的框架和相关内容。

以实例来增进知识的了解我认为更好吸收

转载于:https://www.cnblogs.com/fcfc940503/p/10985561.html

mnist 数据集的识别源码解析相关推荐

  1. 【深度学习模型】智云视图中文车牌识别源码解析(二)

    [深度学习模型]智云视图中文车牌识别源码解析(二) 感受 HyperLPR可以识别多种中文车牌包括白牌,新能源车牌,使馆车牌,教练车牌,武警车牌等. 代码不可谓不混乱(别忘了这是职业公司的准产品级代码 ...

  2. 谷歌BERT预训练源码解析(三):训练过程

    目录 前言 源码解析 主函数 自定义模型 遮蔽词预测 下一句预测 规范化数据集 前言 本部分介绍BERT训练过程,BERT模型训练过程是在自己的TPU上进行的,这部分我没做过研究所以不做深入探讨.BE ...

  3. dataset__getitem___PyTorch源码解析与实践(1):数据加载Dataset,Sampler与DataLoader

    献给学习PyTorch在路上或者计划较深入理解PyTorch的同行者们 写在前面 笔者一直使用tf,大势所趋决定转PyTorch,这个系列就作为我学习PyTorch的笔记与心得. 网络上PyTorch ...

  4. weiler-atherton多边形裁剪算法_EAST算法超详细源码解析:数据预处理与标签生成...

    作者简介 CW,广东深圳人,毕业于中山大学(SYSU)数据科学与计算机学院,毕业后就业于腾讯计算机系统有限公司技术工程与事业群(TEG)从事Devops工作,期间在AI LAB实习过,实操过道路交通元 ...

  5. EAST算法超详细源码解析:数据预处理与标签生成

    作者简介 CW,广东深圳人,毕业于中山大学(SYSU)数据科学与计算机学院,毕业后就业于腾讯计算机系统有限公司技术工程与事业群(TEG)从事Devops工作,期间在AI LAB实习过,实操过道路交通元 ...

  6. 【卷积神经网络CNN 实战案例 GoogleNet 实现手写数字识别 源码详解 深度学习 Pytorch笔记 B站刘二大人 (9.5/10)】

    卷积神经网络CNN 实战案例 GoogleNet 实现手写数字识别 源码详解 深度学习 Pytorch笔记 B站刘二大人 (9.5/10) 在上一章已经完成了卷积神经网络的结构分析,并通过各个模块理解 ...

  7. MySQL核心参数含义的源码解析

    引言 你访问的网站,大部分使用Apache服务器;你访问的网站,大部分使用Linux或BSD操作系统:你访问的网站,大部分使用MySQL数据库;你提交DNS域名查询请求大多由BIND服务器分析处理;你 ...

  8. 视频教程-YOLOv3目标检测:原理与源码解析-计算机视觉

    YOLOv3目标检测:原理与源码解析 大学教授,美国归国博士.博士生导师:人工智能公司专家顾问:长期从事人工智能.物联网.大数据研究:已发表学术论文100多篇,授权发明专利10多项 白勇 ¥78.00 ...

  9. openGauss数据库源码解析系列文章—— AI技术之“自调优”

    上一篇介绍了第七章执行器解析中"7.6 向量化引擎"及"7.7 小结"的相关内容,本篇我们开启第八章 AI技术中"8.1 概述"及" ...

最新文章

  1. linux下怎么卸载ogg,OGG在Linux上的安装
  2. vs2005无法断点调试网站,断点失效
  3. linux文件目录类命令|--rmdir指令
  4. 已经无法合并还报请合并git_Git不能自动合并怎么解决?
  5. 金蝶kis专业版公网访问_金蝶KIS云专业版—【账务处理】进阶操作101问
  6. sentinel控制台无数据解决
  7. 浏览文件神器!且可以计算所有文件代码的行数!
  8. Linux初学者需了解的知识
  9. Linux内存管理 (3)内核内存的布局图
  10. pytorch入门——构建神经网络
  11. dorado7.x argument type mismatch
  12. 任正非:从未想干翻苹果|用友云SaaS产品“云直播”上市 |【软件网每日新闻播报│第9-28期】
  13. java-assured,如何使用Rest-Assured java中的证书进行HTTPS GET调用
  14. Meta今年不再招人!小扎还说跳槽越多越好
  15. 串口数据交换,实现串口合二为一
  16. 实习报告--实习内容及过程
  17. 二、基础SpringBoot2.0.0M4项目目录讲解
  18. 现代计算机基本工作原理,计算机基本原理
  19. win10显示无法连接远程计算机名,windows10无法连接远程桌面的问题的解决方法
  20. mysql 日期的数据类型,MySQL日期数据类型、MySQL时间类型使用总结

热门文章

  1. 在线教育开源 java_开源项目SpringBoot在线教育平台
  2. vue 动态路由_Vue.js应用性能优化三
  3. 处理通知栏点击操作_解读 | 企业主动披露申请 e操作来啦
  4. python2中的字符串编码注意事项
  5. tf.truncated_normal
  6. 获取当前绝对工作目录与被执行文件的绝对目录
  7. python创建线程_多种方法实现 python 线程池
  8. python对excel操作简书_Python实现EXCEL常用操作——pandas简介
  9. MongoDB简介与入门
  10. Redis事务中几种常见的场景-exec执行前后的语法错误时的处理