当前位置: 首页 > news >正文

网站建设与网页设计美食网站建设类课题的研究方法

网站建设与网页设计美食,网站建设类课题的研究方法,燕莎做网站,网站管理建设的需求分析深度学习网络模型的整体架构主要数据集、模型组网以及学习优化过程三部分#xff0c;本章主要围绕着深度学习网络模型的算法架构、常见模型展开了详细介绍#xff0c;从经典的深度学习网络模型以CNN、RNN为代表#xff0c;到为了解决显存不足、实时性不够等问题的轻量化网络…深度学习网络模型的整体架构主要数据集、模型组网以及学习优化过程三部分本章主要围绕着深度学习网络模型的算法架构、常见模型展开了详细介绍从经典的深度学习网络模型以CNN、RNN为代表到为了解决显存不足、实时性不够等问题的轻量化网络设计以及近年来卷各大计算机视觉任务的前沿网络模型Transformer和MLP。为了进一步剖析深度学习网络模型搭建的过程最后以LeNet模型算法为例在飞桨深度学习框架下进行了网络搭建案例展示。学完本章希望读者能够掌握以下知识点: 了解经典的网络模型CNN和RNN;熟悉前沿的网络模型Transformer和MLP;掌握使用飞桨搭建深度学习网络模型-LeNet。 在前面的学习中我们应该大概已经了解了国内外计算机视觉的近况和历史还有深度学习算法基础对于深度学习的框架应该也有了一个大概的了解上面说的这些东西自己下去了解一下就好啦也不会太难。这篇文章主要是针对深度学习的网络模型进行阐述。在了解经典网络模型的同时也能了解前沿的网络模型并且会将通过一个简单的例子让大家对于深度学习网络有一个大概的印象。 在深度学习开发框架的支持下深度学习网络模型不断更新迭代模型架构从经典的卷积神经网络CNN循环神经网络RNN。发展到如今的Transformer多层感知机MLP而他们可以统一视为通过网络部件激活函数设定优化策略等一系列操作来搭建深度学习网络模型并且采用非线性复杂映射将原始数据转变为更高层次等抽象的表达。 深度学习网络模型的整体架构主要包含三部分分别为数据集模型组网以及学习优化过程。深度学习网络模型的训练过程即为优化过程模型优化最直接的目的是通过多次迭代更新来寻找使得损失函数尽可能小的最优模型参数。通常神经网络的优化过程可以分为两个阶段第一阶段是通过正向传播得到模型的预测值并将预测值与正值标签进行比对计算两者之间的差异作为损失值第二个阶段是通过反向传播来计算损失函数对每个参数的梯度根据预设的学习率和动量来更新每个参数的值。 总之一个好的网络模型通常具有以下特点一模型易于训练及训练步骤简单且容易收敛二模型精度高及能够很好的把握数据的内在本质可以提取到有用的关键特征三模型泛化能力强及模型不仅在已知数据上表现良好还而且还能够在于已知数据分布一致的未知数据集上表现其鲁棒性。 案例 一、任务介绍 手写数字识别handwritten numeral recognition是光学字符识别技术optical character recognitionOCR的一个分支是初级研究者的入门基础在现实产业中也占据着十分重要的地位它主要的研究内容是如何利用电子计算机和图像分类技术自动识别人手写在纸张上的阿拉伯数字09。因此本实验任务简易描述如图所示  二、模型原理 近年来神经网络模型一直层出不穷在各个计算机视觉任务中都呈现百花齐放的态势。为了让开发者更清楚地了解网络模型的搭建过程以及为了在后续的各项视觉子任务实战中奠定基础。下面本节将以MNIST手写数字识别为例在PaddlePaddle深度学习开发平台下构建一个LeNet网络模型并进行详细说明。LeNet是第一个将卷积神经网络推上计算机视觉舞台的算法模型它由LeCun在1998年提出。在早期应用于手写数字图像识别任务。该模型采用顺序结构主要包括7层2个卷积层、2个池化层和3个全连接层卷积层和池化层交替排列。以mnist手写数字分类为例构建一个LeNet-5模型。每个手写数字图片样本的宽与高均为28像素样本标签值是0~9代表0至9十个数字。下面详细解析LeNet-5模型的网络结构及原理 图1 LeNet-5整体网络模型 1卷积层L1 L1层的输入数据形状大小为×1×28×28Rm×1×28×28表示样本批量为m通道数量为1行与列的大小都为28。L1层的输出数据形状大小为×6×24×24Rm×6×24×24表示样本批量为m通道数量为6行与列维都为24。 这里有两个问题很关键一是为什么通道数从1变成了6呢原因是模型的卷积层L1设定了6个卷积核每个卷积核都与输入数据发生运算最终分别得到6组数据。二是为什么行列大小从28变成了24呢原因是每个卷积核的行维与列维都为5卷积核5×5在输入数据28×28上移动且每次移动步长为1那么输出数据的行列大小分别为28-5124。 2池化层L2 L2层的输入数据形状大小为×6×24×24Rm×6×24×24表示样本批量为m通道数量为6行与列的大小都为24。L2层的输出数据形状大小为×6×12×12Rm×6×12×12表示样本批量为m通道数量为6行与列维都为12。 在这里为什么行列大小从24变成了12呢原因是池化层中的过滤器形状大小为2×2其在输入数据24×24上移动且每次移动步长跨距为2每次选择4个数2×2中最大值作为输出那么输出数据的行列大小分别为24÷212。 3卷积层L3 L3层的输入数据形状大小为×6×12×12Rm×6×12×12表示样本批量为m通道数量为6行与列的大小都为12。L3层的输出数据形状大小为×16×8×8Rm×16×8×8表示样本批量为m通道数量为16行与列维都为8。 4池化层L4 L4层的输入数据形状大小为×16×8×8Rm×16×8×8表示样本批量为m通道数量为16行与列的大小都为8。L4层的输出数据形状大小为×16×4×4Rm×16×4×4表示样本批量为m通道数量为16行与列维都为4。池化层L4中的过滤器形状大小为2×2其在输入数据形状大小24×24上移动且每次移动步长跨距为2每次选择4个数形状大小2×2中最大值作为输出。 5线性层L5 L5层输入数据形状大小为×256Rm×256表示样本批量为m输入特征数量为256。输出数据形状大小为×120Rm×120表示样本批量为m输出特征数量为120。 6线性层L6 L6层的输入数据形状大小为×120Rm×120表示样本批量为m输入特征数量为120。L6层的输出数据形状大小为×84Rm×84表示样本批量为m输出特征数量为84。 7线性层L7 L7层的输入数据形状大小为×84Rm×84表示样本批量为m输入特征数量为84。L7层的输出数据形状大小为×10Rm×10表示样本批量为m输出特征数量为10。 三、MNIST数据集 3.1 数据集介绍 手写数字分类数据集来源MNIST数据集该数据集可以公开免费获取。该数据集中的训练集样本数量为60000个测试集样本数量为10000个。每个样本均是由28×28像素组成的矩阵每个像素点的值是标量取值范围在0至255之间可以认为该数据集的颜色通道数为1。数据分为图片和标签图片是28*28的像素矩阵标签为0~9共10个数字。 3.2 数据读取 (1)transform函数是对数据进行归一化和标准化 (2)train_dataset和test_dataset paddle.vision.datasets.MNIST()中的modetrain和modetest分别用于获取mnist训练集和测试集 #导入数据集Compose的作用是将用于数据集预处理的接口以列表的方式进行组合。 #导入数据集Normalize的作用是图像归一化处理支持两种方式 1. 用统一的均值和标准差值对图像的每个通道进行归一化处理 2. 对每个通道指定不同的均值和标准差值进行归一化处理。 import paddle from paddle.vision.transforms import Compose, Normalize import os import matplotlib.pyplot as plt transform Compose([Normalize(mean[127.5],std[127.5],data_formatCHW)]) # 使用transform对数据集做归一化 print(下载并加载训练数据) train_dataset paddle.vision.datasets.MNIST(modetrain, transformtransform) val_dataset paddle.vision.datasets.MNIST(modetest, transformtransform) print(加载完成) 让我们一起看看数据集中的图片是什么样子的 train_data0, train_label_0 train_dataset[0][0],train_dataset[0][1] train_data0 train_data0.reshape([28,28]) plt.figure(figsize(2,2)) print(plt.imshow(train_data0, cmapplt.cm.binary)) print(train_data0 的标签为: str(train_label_0)) AxesImage(18,18;111.6x108.72) train_data0 的标签为: [5]/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/cbook/__init__.py:2349: DeprecationWarning: Using or importing the ABCs from collections instead of from collections.abc is deprecated, and in 3.8 it will stop workingif isinstance(obj, collections.Iterator): /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/matplotlib/cbook/__init__.py:2366: DeprecationWarning: Using or importing the ABCs from collections instead of from collections.abc is deprecated, and in 3.8 it will stop workingreturn list(data) if isinstance(data, collections.MappingView) else data /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/numpy/lib/type_check.py:546: DeprecationWarning: np.asscalar(a) is deprecated since NumPy v1.16, use a.item() insteada.item() instead, DeprecationWarning, stacklevel1)Figure size 144x144 with 1 Axes 让我们再来看看数据样子是什么样的吧 print(train_data0) 四、LeNet模型搭建 构建LeNet-5模型进行MNIST手写数字分类 #导入需要的包 import paddle import paddle.nn.functional as F from paddle.vision.transforms import Compose, Normalize#定义模型 class LeNetModel(paddle.nn.Layer):def __init__(self):super(LeNetModel, self).__init__()# 创建卷积和池化层块每个卷积层后面接着2x2的池化层#卷积层L1self.conv1 paddle.nn.Conv2D(in_channels1,out_channels6,kernel_size5,stride1)#池化层L2self.pool1 paddle.nn.MaxPool2D(kernel_size2,stride2)#卷积层L3self.conv2 paddle.nn.Conv2D(in_channels6,out_channels16,kernel_size5,stride1)#池化层L4self.pool2 paddle.nn.MaxPool2D(kernel_size2,stride2)#线性层L5self.fc1paddle.nn.Linear(256,120)#线性层L6self.fc2paddle.nn.Linear(120,84)#线性层L7self.fc3paddle.nn.Linear(84,10)#正向传播过程def forward(self, x):x self.conv1(x)x F.sigmoid(x)x self.pool1(x)x self.conv2(x)x F.sigmoid(x)x self.pool2(x)x paddle.flatten(x, start_axis1,stop_axis-1)x self.fc1(x)x F.sigmoid(x)x self.fc2(x)x F.sigmoid(x)out self.fc3(x)return outmodelpaddle.Model(LeNetModel()) 五、模型优化过程 5.1 损失函数 由于是分类问题我们选择交叉熵损失函数。交叉熵主要用于衡量估计值与真实值之间的差距。交叉熵值越小模型预测效果越好。* (,^)−∑1(^)E(yi,y^​i)−∑j1q​yji​ln(y^​ji​) 其中∈yi∈Rq为真实值yji​是yi中的元素(取值为0或1)1,...,j1,...,q。^∈y^​i∈Rq是预测值样本在每个类别上的概率。其中在paddle里面交叉熵损失对应的API是paddle.nn.CrossEntropyLoss() 5.2 参数优化 定义好了正向传播过程之后接着随机化初始参数然后便可以计算出每层的结果每次将得到m×10的矩阵作为预测结果其中m是小批量样本数。接下来进行反向传播过程预测结果与真实结果之间肯定存在差异以缩减该差异作为目标计算模型参数梯度。进行多轮迭代便可以优化模型使得预测结果与真实结果之间更加接近。 六、模型训练与评估 训练配置设定训练超参数 1、批大小batch_size设置为64表示每次输入64张图片 2、迭代次数epoch设置为5表示训练5轮 3、日志显示verbose1表示带进度条的输出日志信息。 model.prepare(paddle.optimizer.Adam(parametersmodel.parameters()),paddle.nn.CrossEntropyLoss(),paddle.metric.Accuracy())model.fit(train_dataset,epochs5,batch_size64,verbose1)model.evaluate(val_dataset,verbose1) The loss value printed in the log is the current step, and the metric is the average value of previous step. Epoch 1/5 step 10/938 [..............................] - loss: 2.3076 - acc: 0.1062 - ETA: 21s - 23ms/step /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/layers/utils.py:77: DeprecationWarning: Using or importing the ABCs from collections instead of from collections.abc is deprecated, and in 3.8 it will stop workingreturn (isinstance(seq, collections.Sequence) andstep 20/938 [..............................] - loss: 2.3023 - acc: 0.1023 - ETA: 18s - 20ms/step step 938/938 [] - loss: 0.1927 - acc: 0.7765 - 16ms/step Epoch 2/5 step 938/938 [] - loss: 0.0913 - acc: 0.9584 - 17ms/step Epoch 3/5 step 938/938 [] - loss: 0.0232 - acc: 0.9700 - 17ms/step Epoch 4/5 step 938/938 [] - loss: 0.0057 - acc: 0.9763 - 18ms/step Epoch 5/5 step 938/938 [] - loss: 0.0907 - acc: 0.9798 - 17ms/step Eval begin... The loss value printed in the log is the current batch, and the metric is the average value of previous step. step 10000/10000 [] - loss: 7.5607e-04 - acc: 0.9794 - 2ms/step Eval samples: 10000{loss: [0.00075607264], acc: 0.9794} 经过5个epoch世代迭代LeNet5模型在MNIST图像分类任务上的准确度达到98%左右。 七、模型可视化 model.summary((1,1,28,28)) ---------------------------------------------------------------------------Layer (type) Input Shape Output Shape Param # Conv2D-1 [[1, 1, 28, 28]] [1, 6, 24, 24] 156 MaxPool2D-1 [[1, 6, 24, 24]] [1, 6, 12, 12] 0 Conv2D-2 [[1, 6, 12, 12]] [1, 16, 8, 8] 2,416 MaxPool2D-2 [[1, 16, 8, 8]] [1, 16, 4, 4] 0 Linear-1 [[1, 256]] [1, 120] 30,840 Linear-2 [[1, 120]] [1, 84] 10,164 Linear-3 [[1, 84]] [1, 10] 850 Total params: 44,426 Trainable params: 44,426 Non-trainable params: 0 --------------------------------------------------------------------------- Input size (MB): 0.00 Forward/backward pass size (MB): 0.04 Params size (MB): 0.17 Estimated Total Size (MB): 0.22 --------------------------------------------------------------------------- {total_params: 44426, trainable_params: 44426}
http://www.tj-hxxt.cn/news/229949.html

相关文章:

  • 网站设计个人北京vi设计公司哪
  • 网站如何不让百度抓取wordpress 回车
  • 蓟县做网站写一个网站
  • 做网站攻击wordpress 设置文件
  • 国外开源网站系统举例说明seo
  • 建设一个网站的一般过程分析北师大教育学原理网站建设
  • 深圳微商城网站设计制作wordpress4.5.3zhcn
  • 自己制作头像app软件成都网站优化服务
  • 丹阳做网站的山东省住房和城乡建设局网站
  • 芜湖市公司网站建设哪家好互联网行业使用收益法进行评估时
  • 成都维尼网络 网站建设广州软件开发人力外包价格
  • 学网站ui设计wordpress 网易相册
  • 网站加速cdn建一个大网站需要的时间
  • 网站建设广金手指六六十四制作图网 专业图片在线制作网站
  • 购物网站怎么做推广网站色彩运用
  • 企业官方网站是什么中国企业500强2023
  • 乌兰县wap网站建设公司免费的招标网有哪些
  • 深圳做男装什么网站容易找工网络营销第二板斧是什么
  • 商城型网站建设多少钱渭南网站建设推广
  • 网站平台做捐助功能有风险吗什么是php网站
  • 黑龙江省建设教育信息网站广西桂林天气预报15天查询
  • 做的视频传到哪个网站好静态网站模板源码下载
  • 上海行业网站建设在线制作头像框
  • dremrever做网站流程网页生成pdf不显示
  • 高端建站是什么公司网站建设建设
  • 新网站 seo网站seo分析报告
  • 新建网站站点的一级a做爰片图片免费观看网站
  • 重庆高考征集志愿网站拍摄企业宣传片哪家好
  • 网站建设初期怎么添加内容天津专业网站设计
  • 广西网站设计运营公司如何推广网站运营