![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
keras
文章平均质量分 71
布兹学长
兔头小白
展开
-
14.绘制网络模型结构
运行代码之前需要需要安装和 安装pydot: 安装graphviz就比较麻烦了,大家自行百度一下。代码运行平台为jupyter-notebook,文章中的代码块,也是按照jupyter-notebook中的划分顺序进行书写的,运行文章代码,直接分单元粘入到jupyter-notebook即可。 2.数据预处理 3.搭建网络模型 4.绘制网络模型结构 运行结果: 中的最后这个就是决定方向的 代表TOP ,代表BOTTOM,就是从上到下,如果要从左往右的话,修改即可。......原创 2022-07-06 22:26:50 · 814 阅读 · 0 评论 -
13.模型的保存和载入
我们以保存3.MNIST数据集分类中训练的模型为例,来演示模型的保存与载入。保存模型只需要在模型训练完之后添加上 这种保存方式可以同时保存模型的结构和参数。载入模型之前需要先导入方法 然后载入的代码就是简单一句: 这种载入方法可以同时载入模型的结构和参数。模型参数和模型结构分开来保存: 2.载入方式 在载入模型结构之前,需要先导入方法 分别载入网络参数和网络结构: 模型再训练 代码运行平台为jupyter-notebook,文章中的代码块,也是按照jupyter-notebook中的划分顺序进行书写的,运行原创 2022-07-06 21:59:30 · 1278 阅读 · 0 评论 -
12.RNN应用于手写数字识别
2.加载数据及数据预处理 3.训练模型 代码运行结果: 代码中需要注意的一些点,在代码注释中也给出了解释和提醒。从运行结果中可以看到RNN训练出来的模型在测试集上的准确率相对于10.CNN应用于手写数字识别中CNN训练出来的模型在测试集上的准确率效果要更差一些。...原创 2022-07-06 21:02:50 · 399 阅读 · 0 评论 -
11.递归神经网络RNN
RNN称为循环神经网络或者递归神经网络。在过去几年RNN在语言识别,自然语言处理,翻译以及图像描述等领域有着非常好的应用。 处理图片分类的时候,可以把图片一张一张放入分类器中独立进行判断。但是处理语音以及文字的时候,不能把发音独立,也不能把文字独立,要连起来分析才行。传统的神经网络做不到这一点。 RNN有一个反馈回路,这个反馈回路会把上一个时间的输出信息,作为下一个时间的输入来处理。 The Problem of Long-Term Dependencies: RNN一个重要的用法就是通过之前的信息来决原创 2022-07-06 18:07:20 · 516 阅读 · 0 评论 -
10.CNN应用于手写数字识别
2.加载数据及数据预处理 3.训练模型 代码运行结果: 代码中需要注意的一些点,在代码注释中也给出了解释和提醒。注意原创 2022-07-06 17:29:07 · 311 阅读 · 0 评论 -
9.卷积神经网络介绍
卷积神经网络是近年发展起来,并广泛应用于图像处理和NLP等领域的一种多层神经网络。传统BP处理图像时的问题:假设使用100X100的图片进行训练,那么100X100大小的图片有10000个像素点,那么构建网络的输入就需要10000个神经元,网络中的隐藏层神经元数目和输入层神经元数目差不多,这样的话,就会有很多的权值需要训练更新。 计算量非常的大。神经元越多,参数就越多,当你的参数越多的时候,就和解方程一样未知参数越多,需要的越多的数据才能够解出未知参数。既然存在这些问题那怎么办呢? CNN通过局部感受野和权原创 2022-07-06 16:40:54 · 638 阅读 · 0 评论 -
8.优化器
常见的一些优化器有:SGD、Adagrad、Adadelta、RMSprop、Adam、Adamax、Nadam、TFOptimizer等等。标准梯度下降法: 标准梯度下降法计算所有样本汇总误差,然后根据总误差来更新权值。 随机梯度下降法: 随机梯度下降法随机抽取一个样本来计算误差,然后更新权值。 批量梯度下降法: 批量梯度下降算是一种折中的方案,从总样本中选取一个批次(比如一共有10000个样本,随机选取100个样本作为一个batch),然后计算这个batch的总误差,根据总误差来更新权值。标准梯度下降法原创 2022-07-06 11:01:30 · 2303 阅读 · 0 评论 -
7.正则化应用
在6.Dropout应用中的未使用Dropout的代码的网络模型构建中添加正则化。 将6.Dropout应用中的 修改为 使用l2正则化之前需要先导入。 运行结果: 从运行结果可以看出来明显克服了一些过拟合的情况,模型对于数据集不是很复杂,加上正则化的话,它的效果可能就不是很好。1.导入第三方库 2.加载数据及数据预处理 3.训练模型.........原创 2022-07-06 10:04:30 · 319 阅读 · 0 评论 -
6.Dropout应用
在4.交叉熵的代码的网络模型构建中添加一些隐藏层,并且输出训练集的损失和准确率。 将4.交叉熵中的 添加隐藏层修改为: 代码运行结果: 对比4.交叉熵的运行结果,可以发现添加更多隐藏层之后,模型测试的准确率大大提高,但是却出现了轻微的过拟合现象。在模型构建中添加Dropout: 运行结果: 在这个例子中并不是说使用dropout会得到更好的效果,但是有些情况下,使用dropout是可以得到更好的效果。 但是使用dropout之后,测试准确率和训练准确率还是比较接近的,过拟合现象不是很明显。从训练结果中可原创 2022-07-06 09:48:23 · 1030 阅读 · 0 评论 -
5.过拟合,dropout,正则化
可以看到图中随着模型结构的越来越复杂,训练集的误差越来越小,测试集的误差先变小后变大,过拟合导致测试误差变大。 比较好的情况是训练误差和测试误差这两条线比较接近。数据挖掘领域流行着这样一句话,“有时候拥有更多的数据胜过一个好的模型”。一般来说更多的数据参与训练,训练得到的模型就越好。如果数据太少,而我们构建的神经网络又太复杂的话就比较容易产生过拟合的现象。 在训练模型的时候,我们往往会设置一个比较大的选代次数。Early stopping便是一种提前结束训练的策略用来防止过拟合。一般的做法是记录到目前为止最原创 2022-07-06 08:50:41 · 208 阅读 · 0 评论 -
4.交叉熵
其中,c表示代价函数,x表示样本,y表示实际值,a表示输出值,n表示样本的总数。为简单起见,使用一个样本为例进行说明,此时二次代价函数为: 假如我们使用梯度下降法(Gradient descent)来调整权值参数的大小,权值w和偏置b的梯度推导如下: 其中,z表示神经元的输入,α\alphaα表示激活函数。w和b的梯度跟激活函数的梯度成正比,激活函数的梯度越大,w和b的大小调整得越快,训练收敛得就越快。假设我们的激活函数是sigmoid函数: 假设我们目标是收敛到1.0。1点为0.82离目标比较远,梯原创 2022-07-05 17:37:58 · 436 阅读 · 0 评论 -
3.MNIST数据集分类
大多数示例使用手写数字的MNIST数据集。该数据集包含60,000个用于训练的示例和10,000个用于测试的示例。 每一张图片包含28*28个像素,在MNIST训练数据集中是一个形状为[60000,28,28]的张量,我们首先需要把数据集转成[60000,784],然后才能放到网络中训练。第一个维度数字用来索引图片,第二个维度数字用来索引每张图片中的像素点。一般我们还需要把图片中的数据归一化0~1之间。 MNIST数据集的标签是介于0-9的数字,我们要把标签转化为"one-hotvectors"。一个o原创 2022-07-05 16:09:16 · 4919 阅读 · 0 评论 -
2.非线性回归
2.随机生成数据集 运行结果: 运行结果: 注意原创 2022-07-05 10:41:21 · 355 阅读 · 0 评论 -
1.线性回归
2.随机生成数据集 运行效果: 这是添加噪声的情况下: 不添加噪声的情况下(w=0.1,b=0.2): 线性回归就是要根据添加噪声的散点图,拟合出一条与不添加噪声的散点图近似的直线。 运行效果: 可以看到预测出来的w和b都十分接近我们设置的w和b。注意...原创 2022-07-05 10:07:27 · 152 阅读 · 0 评论