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

河北网站建设域名 网站 区别

河北网站建设,域名 网站 区别,网站访客qq获取原理,电商网站的图片#x1f468;‍#x1f393;作者简介#xff1a;一位即将上大四#xff0c;正专攻机器学习的保研er #x1f30c;上期文章#xff1a;机器学习深度学习——池化层 #x1f4da;订阅专栏#xff1a;机器学习深度学习 希望文章对你们有所帮助 卷积神… ‍作者简介一位即将上大四正专攻机器学习的保研er 上期文章机器学习深度学习——池化层 订阅专栏机器学习深度学习 希望文章对你们有所帮助 卷积神经网络LeNet 引言LeNet模型训练小结 引言 之前的内容中曾经将softmax回归模型和多层感知机应用于Fashion-MNIST数据集中的服装图片。为了能应用他们我们首先就把图像展平成了一维向量然后用全连接层对其进行处理。 而现在已经学习过了卷积层的处理方法我们就可以在图像中保留空间结构。同时用卷积层代替全连接层的另一个好处是模型更简单所需参数更少。 LeNet是最早发布的卷积神经网络之一之前出来的目的是为了识别图像中的手写数字。 LeNet 总体看由两个部分组成 1、卷积编码器由两个卷积层组成 2、全连接层密集快由三个全连接层组成 上图中就是LeNet的数据流图示其中汇聚层也就是池化层。 最终输出的大小是10也就是10个可能结果0-9。 每个卷积块的基本单元是一个卷积层、一个sigmoid激活函数和平均池化层当年没有ReLU和最大池化层。每个卷积层使用5×5卷积核和一个sigmoid激活函数。 这些层的作用就是将输入映射到多个二维特征输出通常同时增加通道的数量。从上图容易看出第一卷积层有6个输出通道而第二个卷积层有16个输出通道每个2×2池操作步幅也为2通过空间下采样将维数减少4倍。卷积的输出形状那是由批量大小、通道数、高度、宽度决定。 为了将卷积块的输出传递给稠密块我们必须在小批量中展平每个样本也就是把四维的输入转换为全连接层期望的二维输入第一维索引小批量中的样本第二维给出给个样本的平面向量表示。 LeNet的稠密块有三个全连接层分别有120、84和10个输出。因为我们在执行分类任务所以输出层的10维对应于最后输出结果的数量代表0-9是个结果。 深度学习框架实现此类模型非常简单用一个Sequential块把需要的层连接在一个就可以了我们对原始模型做一个小改动去掉最后一层的高斯激活 import torch from torch import nn from d2l import torch as d2lnet nn.Sequential(# 输入图像和输出图像都是28×28因此我们要先进行填充2格nn.Conv2d(1, 6, kernel_size5, padding2), nn.Sigmoid(),nn.AvgPool2d(kernel_size2, stride2),nn.Conv2d(6, 16, kernel_size5), nn.Sigmoid(),nn.AvgPool2d(kernel_size2, stride2),nn.Flatten(),nn.Linear(16 * 5 * 5, 120), nn.Sigmoid(),nn.Linear(120, 84), nn.Sigmoid(),nn.Linear(84, 10) ) 上面的模型图示就为 我们可以先检查模型在每一层打印输出的形状 X torch.rand(size(1, 1, 28, 28), dtypetorch.float32) for layer in net:X layer(X)print(layer.__class__.__name__, output shape:\t, X.shape) 输出结果 Conv2d output shape: torch.Size([1, 6, 28, 28]) Sigmoid output shape: torch.Size([1, 6, 28, 28]) AvgPool2d output shape: torch.Size([1, 6, 14, 14]) Conv2d output shape: torch.Size([1, 16, 10, 10]) Sigmoid output shape: torch.Size([1, 16, 10, 10]) AvgPool2d output shape: torch.Size([1, 16, 5, 5]) Flatten output shape: torch.Size([1, 400]) Linear output shape: torch.Size([1, 120]) Sigmoid output shape: torch.Size([1, 120]) Linear output shape: torch.Size([1, 84]) Sigmoid output shape: torch.Size([1, 84]) Linear output shape: torch.Size([1, 10]) 模型训练 既然已经实现了LeNet现在可以查看它在Fashion-MNIST数据集上的表现 batch_size 256 train_iter, test_iter d2l.load_data_fashion_mnist(batch_size)计算成本较高因此使用GPU来加快训练。为了进行评估对之前的evaluate_accuracy进行修改由于完整的数据集位于内存中因此在模型使用GPU计算数据集之前我们需要将其复制到显存中。 def evaluate_accuracy_gpu(net, data_iter, deviceNone):使用GPU计算模型在数据集上的精度if isinstance(net, nn.Module):net.eval() # 设置为评估模式if not device:device next(iter(net.parameters())).device# 正确预测的数量总预测的数量metric d2l.Accumulator(2)with torch.no_grad():for X, y in data_iter:if isinstance(X, list):# BERT微调所需后面内容else:X X.to(device)y y.to(device)metric.add(d2l.accuracy(net(X), y), y.numel())return metric[0] / metric[1]要使用GPU我们要在正向和反向传播之前将每一小批量数据移动到我们GPU上。 如下所示的train_ch6类似于之前定义的train_ch3。以下训练函数假定从高级API创建的模型作为输入并进行相应的优化。 使用Xavier来随机初始化模型参数。有关于Xavier的推导和原理可以看下面的文章 机器学习深度学习——数值稳定性和模型化参数详细数学推导 与全连接层一样使用交叉熵损失函数和小批量随机梯度下降代码如下 def train_ch6(net, train_iter, test_iter, num_epochs, lr, device): #save用GPU训练模型def init_weights(m):if type(m) nn.Linear or type(m) nn.Conv2d:nn.init.xavier_uniform_(m.weight)net.apply(init_weights)print(training on, device)net.to(device)optimizer torch.optim.SGD(net.parameters(), lrlr)loss nn.CrossEntropyLoss()animator d2l.Animator(xlabelepoch, xlim[1, num_epochs],legend[train loss, train acc, test acc])timer, num_batches d2l.Timer(), len(train_iter)for epoch in range(num_epochs):# 训练损失之和训练准确率之和样本数metric d2l.Accumulator(3)net.train()for i, (X, y) in enumerate(train_iter):timer.start()optimizer.zero_grad()X, y X.to(device), y.to(device)y_hat net(X)l loss(y_hat, y)optimizer.step()with torch.no_grad():metric.add(l * X.shape[0], d2l.accuracy(y_hat, y), X.shape[0])timer.stop()train_l metric[0] / metric[2]train_acc metric[1] / metric[2]if (i 1) % (num_batches // 5) 0 or i num_batches - 1:animator.add(epoch (i1) / num_batches, (train_l, train_acc, None))test_acc evaluate_accuracy_gpu(net, test_iter)animator.add(epoch 1, (None, None, test_acc))print(floss {train_l:.3f}, train acc {train_acc:.3f}, ftest acc {test_acc:.3f})print(f{metric[2] * num_epochs / timer.sum():.1f} examples/sec fon {str(device)})此时我们可以开始训练和评估LeNet模型 lr, num_epochs 0.9, 10 train_ch6(net, train_iter, test_iter, num_epochs, lr, d2l.try_gpu()) d2l.plt.show()运行输出这边我没有用远程的GPU在自己本地跑了本地只有CPU training on cpu loss 0.477, train acc 0.820, test acc 0.795 8004.2 examples/sec on cpu 运行图片 小结 1、卷积神经网络CNN是一类使用卷积层的网络 2、在卷积神经网络中我们组合使用卷积层、非线性激活函数和池化层 3、为了构造高性能的卷积神经网络我们通常对卷积层进行排列逐渐降低其表示的空间分辨率同时增加通道数 4、传统卷积神经网络中卷积块编码得到的表征在输出之前需要由一个或多个全连接层进行处理
http://www.hkea.cn/news/14410326/

相关文章:

  • 国外比较好的建筑设计网站苏州网站优化企业
  • 南宁网站建设策划方案想学营销策划去哪里学
  • 电子商务网站规书域名推荐
  • 喷码机营销型网站服务器有了怎么做网站
  • 网站域名的管理密码如何索取电商网站模块设计
  • 成都网站制作-中国互联全筑装饰官网
  • 互联网网站 权限推广比较好的网站
  • 做网站好还是app好导出wordpress文章
  • 安徽茶叶学会 网站建设一个好网站应具备哪些条件
  • 网站建设企业官网体验版是什么长尾关键词网站
  • 网站快速优化排名网络服务器租赁费一般多少钱
  • 网站服务器 购买时长最新网站建设方案
  • 中山专业制作网站交互式多媒体网站开发
  • 网站关键词提取工具备案 网站名称
  • 自己做的网站如何推广重庆网络公司价格
  • 广州网站开发小程序山西建站
  • 那些门户网站的官网做的好平面设计兼职
  • wordpress建站实例创造网站的软件
  • 各地平台网站app手机电视网站设计方案
  • 宽带技术网网站论坛申请网站备案前置审批
  • 网站主动服务方案国外网站国内备案
  • 电子商务网站建设课设网站模板桂林象鼻山景区官网
  • 公司网站建设计入明细科目网络营销站点页面设计原则
  • 提供秦皇岛网站建设哪里有网页设计版心常用尺寸
  • 网站建设运营思路中文商城html网站模板
  • 第一模板网站上的模板怎么下载怎么建造网站
  • 怎样提高网站打开速度慢点播视频网站怎么建设
  • 广州市网站建站做图片视频的网站有哪些问题吗
  • wordpress 文章标题列表石家庄seo网络优化的公司
  • 美容视频视频网站建设点击即玩的小游戏网站