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

网站平台由什么搭建wordpress左对齐代码

网站平台由什么搭建,wordpress左对齐代码,wordpress圆角阴影,没有公司怎么做网站残差网络ResNet 1. 函数类2. 残差块3. ResNet模型4. 训练模型 ResNet为了解决“新添加的层如何提升神经网络的性能”#xff0c;它在2015年的ImageNet图像识别挑战赛夺魁 它深刻影响了后来的深度神经网络的设计#xff0c;ResNet的被引用量更是达到了19万。 1. 函数类 假… 残差网络ResNet 1. 函数类2. 残差块3. ResNet模型4. 训练模型 ResNet为了解决“新添加的层如何提升神经网络的性能”它在2015年的ImageNet图像识别挑战赛夺魁 它深刻影响了后来的深度神经网络的设计ResNet的被引用量更是达到了19万。 1. 函数类 假设有一类特定的神经网络架构F它包括学习速率和其他超参数设置。对于所有f∈F存在一些参数集例如权重和偏置这些参数可以通过在合适的数据集上进行训练而获得。 现在假设 f* 是我们真正想要找到的函数如果是 f*∈F那可以轻而易举的训练得到它。 给定一个具有X特性和y标签的数据集 是我们要找的函数为了使其更近似真正的 f* 则需要更强的架构F’。 对于非嵌套函数类较复杂的函数类并不总是向“真”函数 f* 靠拢复杂度由F1向F6递增。虽然F3比F1更接近 f*但却离F6的更远了。 而右侧的嵌套函数可以避免上述问题。 2. 残差块 残差网络的核心思想是每个附加层都应该更容易地包含原始函数作为其元素之一。 F(x) x包含了原始元素。 ResNet沿用了VGG完整的3x3卷积层设计。 残差块里首先有2个有相同输出通道数的3x3卷积层。每个卷积层后接一个批量规范化层和ReLU激活函数。然后通过跨层数据通路跳过这2个卷积运算将输入直接加在最后的ReLU激活函数前。 import torch from torch import nn from torch.nn import functional as F from d2l import torch as d2lclass Residual(nn.Module): #save# use_ixiconv残差连接是直接连接还是通过卷积层连接def __init__(self, input_channels, num_channels,use_1x1convFalse, strides1):super().__init__()self.conv1 nn.Conv2d(input_channels, num_channels, kernel_size3, padding1, stridestrides)self.conv2 nn.Conv2d(num_channels, num_channels, kernel_size3, padding1)if use_1x1conv:self.conv3 nn.Conv2d(input_channels, num_channels, kernel_size3, padding1, stridestrides)else:self.conv3 Noneself.bn1 nn.BatchNorm2d(num_channels)self.bn2 nn.BatchNorm2d(num_channels)def forward(self, X):Y F.relu(self.bn1(self.conv1(X)))Y self.bn2(self.conv2(Y))if self.conv3:X self.conv3(X)Y X return F.relu(Y)此代码生成两种类型的网络 一种是当use_1x1convFalse时应用ReLU非线性函数之前将输入添加到输出。另一种是当use_1x1convTrue时添加通过1x1卷积调整通道和分辨率。 查看输入和输出形状一致的情况 # 输入、输出的情况 blk Residual(3, 3) X torch.rand(4, 3, 6, 6) Y blk(X) Y.shape在增加输出通道数的同时减半输出的高和宽 # 增加输出通道的同时减半输出的高度和宽度 blk Residual(3, 6, use_1x1convTrue, strides2) blk(X).shape3. ResNet模型 ResNet的前两层跟之前介绍的GoogLeNet中的一样 在输出通道数为64、步幅为2的7x7卷积层后接步幅为2的3x3的最大汇聚层。 不同之处在于ResNet每个卷积层后增加了批量规范化层。 # ResNet在每个卷积层后增加了批量规范层 b1 nn.Sequential(nn.Conv2d(1, 64, kernel_size7, stride2, padding3),nn.BatchNorm2d(64), nn.ReLU(),nn.MaxPool2d(kernel_size3, stride2, padding1))ResNet使用4个由残差块组成的模块每个模块使用若干个同样输出通道数的残差块。 第一个模块的通道数同输入通道数一致。之后的每个模块在第一个残差块里将上一个模块的通道数翻倍并将高和宽减半。 # 实现残差连接模块由4个残差连接块组成 def resnet_block(input_channels, num_channels, num_residuals, first_blockFalse):# 定义空网络结构blk []for i in range(num_residuals):# 第2,3,4个Inception块的第一个残差模块连接1x1卷积层if i 0 and not first_block:blk.append(Residual(input_channels, num_channels, use_1x1convTrue, strides2))else:blk.append(Residual(num_channels, num_channels))return blk接着在ResNet加入所有残差块这里每个模块使用2个残差块。 # 在ResNet加入所有残差块每个模版使用2个残差块 b2 nn.Sequential(*resnet_block(64, 64, 2, first_blockTrue)) b3 nn.Sequential(*resnet_block(64, 128, 2)) b4 nn.Sequential(*resnet_block(128, 256, 2)) b5 nn.Sequential(*resnet_block(256, 512, 2))最后在ResNet中加入全局平均汇聚层以及全连接层输出。 # 在ResNet加入全局平均汇聚层以及全连接层输出 net nn.Sequential(b1, b2, b3, b4, b5,nn.AdaptiveAvgPool2d((1, 1)),nn.Flatten(), nn.Linear(512, 10))每个模块有4个卷积层加上第一个7x7卷积层和最后一个全连接层共有18层这种模型通常被称为ResNet-18。 观察一下ResNet中不同模块的输入形状是如何变化 # 每个模块有4个卷积层不包括恒等映射的1x1卷积层。 # 加上第一个7x7卷积层和最后一个全连接层共有18层。 # 因此这种模型通常被称为ResNet-18。 X torch.rand(size(1, 1, 224, 224)) for layer in net:X layer(X)print(layer.__class__.__name__, output_shape:\t, X.shape)4. 训练模型 在Fashion-MNIST数据集上训练ResNet 定义精度评估函数 定义精度评估函数1、将数据集复制到显存中2、通过调用accuracy计算数据集的精度def evaluate_accuracy_gpu(net, data_iter, deviceNone): #save# 判断net是否属于torch.nn.Module类if isinstance(net, nn.Module):net.eval()# 如果不在参数选定的设备将其传输到设备中if not device:device next(iter(net.parameters())).device# Accumulator是累加器定义两个变量正确预测的数量总预测的数量。metric d2l.Accumulator(2)with torch.no_grad():for X, y in data_iter:# 将X, y复制到设备中if isinstance(X, list):# BERT微调所需的之后将介绍X [x.to(device) for x in X]else:X X.to(device)y y.to(device)# 计算正确预测的数量总预测的数量并存储到metric中metric.add(d2l.accuracy(net(X), y), y.numel())return metric[0] / metric[1]定义GPU训练函数 定义GPU训练函数1、为了使用gpu首先需要将每一小批量数据移动到指定的设备例如GPU上2、使用Xavier随机初始化模型参数3、使用交叉熵损失函数和小批量随机梯度下降。#save def train_ch6(net, train_iter, test_iter, num_epochs, lr, device):用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)# 在设备device上进行训练print(training on, device)net.to(device)# 优化器随机梯度下降optimizer torch.optim.SGD(net.parameters(), lrlr)# 损失函数交叉熵损失函数loss nn.CrossEntropyLoss()# Animator为绘图函数animator d2l.Animator(xlabelepoch, xlim[1, num_epochs],legend[train loss, train acc, test acc])# 调用Timer函数统计时间timer, num_batches d2l.Timer(), len(train_iter)for epoch in range(num_epochs):# Accumulator(3)定义3个变量损失值正确预测的数量总预测的数量metric d2l.Accumulator(3)net.train()# enumerate() 函数用于将一个可遍历的数据对象for i, (X, y) in enumerate(train_iter):timer.start() # 进行计时optimizer.zero_grad() # 梯度清零X, y X.to(device), y.to(device) # 将特征和标签转移到devicey_hat net(X)l loss(y_hat, y) # 交叉熵损失l.backward() # 进行梯度传递返回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 (i 1) / 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/secfon {str(device)})训练模型 # 训练模型 lr, num_epochs, batch_size 0.05, 10 ,256 train_iter, test_iter d2l.load_data_fashion_mnist(batch_size, resize96) d2l.train_ch6(net, train_iter, test_iter, num_epochs, lr, d2l.try_gpu())
http://www.tj-hxxt.cn/news/134711.html

相关文章:

  • wordpress 停站永久有效的代理ip
  • 做网站新手流程哪个网站做视频有收益
  • 大专网络营销专业好不好关键词诊断优化全部关键词
  • 有什么做衣服的网站吗咸阳网站开发联系方式
  • 英文站网站源码游戏ui设计
  • 如何制作网站后台信息门户网站是什么
  • 网站建设广找金手指排名贰肆微信机器人
  • 杭州市建设工程造价管理协会网站厦门工程信息网
  • 网站404设置西乡塘网站建设
  • 网站备案最多需要多久wordpress 缓存在那
  • 济南建设网站的公司吗建网站一定要备案吗
  • 深圳网站建设亿联时代网站建设规划书中包含内容
  • 武昌网站建设有域名有服务器怎么做网站
  • 做网站就是做点击率传媒公司网站建设
  • 企业网站制作的市场嘉定制作企业网站
  • 网站建设硬件配置无锡抖音代运营公司
  • 大余做网站公司微商城新零售app
  • 深圳企业网站建设设计公司官方网站的推广策划怎么做
  • 网站建设中跳转页面源码网站的推广和优化方案
  • 简洁大气网站模板广东网站设计公司价格
  • 网站页面设计稿wordpress的安装
  • 做灯具网站推广哪家好网站架设的结构
  • 网站商城的公司运营结构自适应网站好建们
  • 做网站的系统功能需求浙江省工程信息网官网
  • 做双语网站多少钱品牌建站
  • 免费门户网站搭建广东莞建建设工程有限公司
  • 门户网站建设要求福州小程序开发公司
  • 2017最新网站设计风格建筑公司企业号
  • 广州响应式网站建设免费虚拟主机管理系统
  • 网站建设案例 杭州远大建设银行网站总是崩溃