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

做网站的客户需求报告答案电子商务网站建设论文总结

做网站的客户需求报告答案,电子商务网站建设论文总结,wordpress软件著作权,如何不用百度推广做网站深度学习网络模型的整体架构主要数据集、模型组网以及学习优化过程三部分#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.huolong8.cn/news/322514/

相关文章:

  • 昆明制作手机网站房产律师咨询免费24小时在线
  • dede网站前台没有图片电话网站域名到期
  • 泰州网站建设团队遵义酷虎网站开发
  • 有了域名怎么建设网站外包服务公司是干什么的
  • html网页框架代码实例下载班级优化大师并安装
  • 网站设计导航栏怎么做合肥高端网站设计
  • 北京中国建设部网站首页苏州高端网站设计机构
  • 怎样黑进别人的网站服务器可以做网站吗
  • 东莞网站建设服务商中企动力做的网站价格区间
  • 广告素材网站wordpress 评论登陆
  • 房屋和建设工程信息平台seo2短视频发布
  • 网站后台登陆不进去微商做网站网站
  • 山东教育网站开发公司程序开发软件有哪些
  • 做外贸如何通过网站精准找到老板联系方法唐山住房和城乡建设局网站
  • 微信长图的免费模板网站重庆在线官网
  • 遵义做网站多少钱小程序制作公司排名
  • 手机网站缩放wordpress 主题 音乐
  • 山西做网站的公司哪个好山东建设银行官方网站
  • 建设企业网站模板下载企业网站网站建设公司
  • 网站建设与维护 书代做网页设计
  • 展示型网站与营销型网站区别哪几个做内贸的网站比较好一点
  • 医疗行业企业网站建设石家庄市建设南大街小学网站
  • 云服务器网站崩溃的原因办办网登陆
  • 网站建设公众号小程序推广开发视频制作课程
  • 水墨网站设计欣赏世界杯数据分析
  • 网站建设方案 filetype doc建网站软件 优帮云
  • 网站接单做项目渠道网创业加盟博览会
  • 网站制作 视频大良营销网站建设流程
  • 东莞网站建设对比wordpress 国内不使用
  • 潍坊网站制作公司深圳公司注册需要资料