目录

一、常规神经网络模型

二、TensorFlow实现前向传播步骤

1、读取数据集

2、batch划分

3、根据神经网络每一层的神经元个数来初始化参数w,b

4、进行每一层输入输出的计算

5、对每一层的输出进行非线性relu函数变换

6、计算一个batch训练后的误差loss

7、计算每一次loss对参数的梯度

8、根据梯度进行参数的迭代

三、常见错误纠错

1、tf.Variable()忘记使用——将需要求导的参数进行该操作,系统会自动记录导数的变化

2、迭代后的参数会自动变成tensor,而不是variable进而报错

3、梯度爆炸的解决——将初始化参数时的方差改小

4、几个循环


一、常规神经网络模型

二、TensorFlow实现前向传播步骤

这里以UCI中的手写数字集作为数据训练集,假设神经网络层数有4层

输入层:1

隐层:2

输出层:1

按照batch的方式进行训练,一个batch含有128组数据

一个batch在神经网络中训练的shape变换如下:

x【128,28,28】>>>reshape>>>输入:【128,784】>>>隐层1:【128,256】>>>隐层2:【128,128】>>>输出:out【128,10】

y【128,】>>>one_hot>>>【128,10】

一个batch的loss:【128,10】

loss = (y-out)^2

1、读取数据集

2、batch划分

因为minis数据集数据量庞大,如果一个一个样本进行训练会非常耗时,因此将一定数量的样本组合成一个batch,每次对一个batch进行训练,这样会提高训练效率,又不会影响训练出来神经网络的准确性

3、根据神经网络每一层的神经元个数来初始化参数w,b

每一层的w的个数为:上一层神经元数*下一层神经元数

每一层的b的个数为:当前层的神经元个数

4、进行每一层输入输出的计算

5、对每一层的输出进行非线性relu函数变换

6、计算一个batch训练后的误差loss

7、计算每一次loss对参数的梯度

利用TensorFlow求解loss对各个参数进行求导时,必须将输入输出的求解以及loss的求解放在上图红色框的内部

8、根据梯度进行参数的迭代

三、常见错误纠错

1、tf.Variable()忘记使用——将需要求导的参数进行该操作,系统会自动记录导数的变化

2、迭代后的参数会自动变成tensor,而不是variable进而报错

这样的话我们就需要利用一个函数,使得迭代变量参数的值发生改变但是对象不会发生改变

3、梯度爆炸的解决——将初始化参数时的方差改小

梯度爆炸就是指梯度突然非常大,导致后面进行后向传播时,loss不断地增大,得不到最优参数解

4、几个循环

【TensorFlow】——实现minist数据集分类的前向传播(常规神经网络非卷积神经网络)相关推荐

  1. 04.卷积神经网络 W1.卷积神经网络(作业:手动/TensorFlow 实现卷积神经网络)

    文章目录 作业1:实现卷积神经网络 1. 导入一些包 2. 模型框架 3. 卷积神经网络 3.1 Zero-Padding 3.2 单步卷积 3.3 卷积神经网络 - 前向传播 4. 池化层 5. 卷 ...

  2. 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(十四)(卷积神经网络))

    [神经网络与深度学习-TensorFlow实践]-中国大学MOOC课程(十四)(卷积神经网络)) 14 卷积神经网络 14.1 深度学习基础 14.1.1 深度学习的基本思想 14.1.2 深度学习三 ...

  3. Tensorflow基于minist数据集实现自编码器

    Tensorflow实现自编码器 自编码器 Denoising AutoEncoder(去噪自编码器) 自编码器 特征的稀疏表达:使用少量的基本特征组合拼装得到更高层抽象的特征. 如:图像碎片可由少量 ...

  4. [Tensorflow]服装图像数据集分类:使用DNN、CNN模型

    一.实验介绍 实验环境:jupyter notebook.Tensorflow.keras 数据集Fashion Mnist与样例代码及相关参考: https://www.tensorflow.org ...

  5. TensorFlow基于minist数据集实现手写字识别实战的三个模型

    手写字识别 model1:输入层→全连接→输出层softmax model2:输入层→全连接→隐含层→全连接→输出层softmax model3:输入层→卷积层1→卷积层2→全连接→dropout层→ ...

  6. 打造属于自己的TensorFlow(一)之SimpleFlow-计算图与前向传播

    前段时间因为课题需要使用了一段时间TensorFlow,感觉这种框架很有意思,除了可以搭建复杂的神经网络,也可以优化其他自己需要的计算模型,所以一直想自己学习一下写一个类似的图计算框架.前几天组会开完 ...

  7. TensorFlow:实战Google深度学习框架(五)图像识别与卷积神经网络

    第6章 图像识别与卷积神经网络 6.1 图像识别问题简介及经典数据集 6.2 卷积神经网络简介 6.3 卷积神经网络常用结构 6.3.1 卷积层 6.3.2 池化层 6.4 经典卷积神经网络模型 6. ...

  8. 【TensorFlow】TensorFlow从浅入深系列之十一 -- 教你深入理解卷积神经网络中的卷积层

    本文是<TensorFlow从浅入深>系列之第11篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维 ...

  9. cnn图像二分类 python_人工智能Keras图像分类器(CNN卷积神经网络的图片识别篇)...

    上期文章我们分享了人工智能Keras图像分类器(CNN卷积神经网络的图片识别的训练模型),本期我们使用预训练模型对图片进行识别:Keras CNN卷积神经网络模型训练 导入第三方库 from kera ...

最新文章

  1. CentOS登录root账户
  2. VS Supercharger插件的破解
  3. Nginx Mac笔记
  4. C语言之通过指针变量访问整型变量
  5. 牛客小白月赛12 F 华华开始学信息学 (分块+树状数组)
  6. 鸿蒙手机启动器apk下载,澪Pro启动器本体下载最新版
  7. [vue] vue给组件绑定自定义事件无效怎么解决?
  8. linux故障排查书籍,Linux系统故障排查和修复技巧.docx
  9. 【Windows】Windows10-Telnet的使用
  10. linux 内核编号含义_linux内核(kernel)版本号的意义
  11. 闪耀在UNIX传奇往事中的启示,UNIX见证者带你一览究竟
  12. MATLAB分子微纳模拟,FDTD/MODE/DEVICE/Interconnect 微纳光电子模拟
  13. c语言中调用平均成绩,C语言、用调用函数、输入3个学生5门课程的成绩分别用函数求每个学生平均分每门课的平均分...
  14. CSS之after与before的content 和 attr 配合使用
  15. python代码块使用缩进来表示_python 基础语法
  16. 文本生成系列之transformer结构扩展(三)
  17. 空间应用统计分析(回归分析)
  18. php页面中播放flv视频,页面播放flv格式视频[原创]
  19. 树莓派(zero w)——硬件介绍与系统开机
  20. Mysql按天数据统计

热门文章

  1. java实验四——找鞍点
  2. 数据同步 rsync+notify架构
  3. 设计模式六大原则(3)——依赖倒置原则
  4. sqlserver 查看锁表,解锁
  5. Java实现各种排序算法
  6. vue面试题,知识点汇总(有答案)
  7. 银盒子扫码下单在线订单开启商品售卖时段使用说明
  8. 【瓜分5000元奖金】Wannafly挑战赛13
  9. Underscore.js 的模板功能
  10. Python版——博客网站四 编写日志创建页