【TensorFlow】——实现minist数据集分类的前向传播(常规神经网络非卷积神经网络)
目录
一、常规神经网络模型
二、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数据集分类的前向传播(常规神经网络非卷积神经网络)相关推荐
- 04.卷积神经网络 W1.卷积神经网络(作业:手动/TensorFlow 实现卷积神经网络)
文章目录 作业1:实现卷积神经网络 1. 导入一些包 2. 模型框架 3. 卷积神经网络 3.1 Zero-Padding 3.2 单步卷积 3.3 卷积神经网络 - 前向传播 4. 池化层 5. 卷 ...
- 【神经网络与深度学习-TensorFlow实践】-中国大学MOOC课程(十四)(卷积神经网络))
[神经网络与深度学习-TensorFlow实践]-中国大学MOOC课程(十四)(卷积神经网络)) 14 卷积神经网络 14.1 深度学习基础 14.1.1 深度学习的基本思想 14.1.2 深度学习三 ...
- Tensorflow基于minist数据集实现自编码器
Tensorflow实现自编码器 自编码器 Denoising AutoEncoder(去噪自编码器) 自编码器 特征的稀疏表达:使用少量的基本特征组合拼装得到更高层抽象的特征. 如:图像碎片可由少量 ...
- [Tensorflow]服装图像数据集分类:使用DNN、CNN模型
一.实验介绍 实验环境:jupyter notebook.Tensorflow.keras 数据集Fashion Mnist与样例代码及相关参考: https://www.tensorflow.org ...
- TensorFlow基于minist数据集实现手写字识别实战的三个模型
手写字识别 model1:输入层→全连接→输出层softmax model2:输入层→全连接→隐含层→全连接→输出层softmax model3:输入层→卷积层1→卷积层2→全连接→dropout层→ ...
- 打造属于自己的TensorFlow(一)之SimpleFlow-计算图与前向传播
前段时间因为课题需要使用了一段时间TensorFlow,感觉这种框架很有意思,除了可以搭建复杂的神经网络,也可以优化其他自己需要的计算模型,所以一直想自己学习一下写一个类似的图计算框架.前几天组会开完 ...
- TensorFlow:实战Google深度学习框架(五)图像识别与卷积神经网络
第6章 图像识别与卷积神经网络 6.1 图像识别问题简介及经典数据集 6.2 卷积神经网络简介 6.3 卷积神经网络常用结构 6.3.1 卷积层 6.3.2 池化层 6.4 经典卷积神经网络模型 6. ...
- 【TensorFlow】TensorFlow从浅入深系列之十一 -- 教你深入理解卷积神经网络中的卷积层
本文是<TensorFlow从浅入深>系列之第11篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维 ...
- cnn图像二分类 python_人工智能Keras图像分类器(CNN卷积神经网络的图片识别篇)...
上期文章我们分享了人工智能Keras图像分类器(CNN卷积神经网络的图片识别的训练模型),本期我们使用预训练模型对图片进行识别:Keras CNN卷积神经网络模型训练 导入第三方库 from kera ...
最新文章
- CentOS登录root账户
- VS Supercharger插件的破解
- Nginx Mac笔记
- C语言之通过指针变量访问整型变量
- 牛客小白月赛12 F	华华开始学信息学 (分块+树状数组)
- 鸿蒙手机启动器apk下载,澪Pro启动器本体下载最新版
- [vue] vue给组件绑定自定义事件无效怎么解决?
- linux故障排查书籍,Linux系统故障排查和修复技巧.docx
- 【Windows】Windows10-Telnet的使用
- linux 内核编号含义_linux内核(kernel)版本号的意义
- 闪耀在UNIX传奇往事中的启示,UNIX见证者带你一览究竟
- MATLAB分子微纳模拟,FDTD/MODE/DEVICE/Interconnect 微纳光电子模拟
- c语言中调用平均成绩,C语言、用调用函数、输入3个学生5门课程的成绩分别用函数求每个学生平均分每门课的平均分...
- CSS之after与before的content 和 attr 配合使用
- python代码块使用缩进来表示_python 基础语法
- 文本生成系列之transformer结构扩展(三)
- 空间应用统计分析(回归分析)
- php页面中播放flv视频,页面播放flv格式视频[原创]
- 树莓派(zero w)——硬件介绍与系统开机
- Mysql按天数据统计