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

广西建设网官网在线服务seowhy是什么意思中文

广西建设网官网在线服务,seowhy是什么意思中文,旅游网站建设规划书模板,wordpress怎么引用图片不显示不出来注#xff1a;本文为《动手学深度学习》开源内容#xff0c;部分标注了个人理解#xff0c;仅为个人学习记录#xff0c;无抄袭搬运意图 5.12 稠密连接网络#xff08;DenseNet#xff09; ResNet中的跨层连接设计引申出了数个后续工作。本节我们介绍其中的一个#xf… 注本文为《动手学深度学习》开源内容部分标注了个人理解仅为个人学习记录无抄袭搬运意图 5.12 稠密连接网络DenseNet ResNet中的跨层连接设计引申出了数个后续工作。本节我们介绍其中的一个稠密连接网络DenseNet [1]。 它与ResNet的主要区别如图5.10所示。 图5.10 ResNet左与DenseNet右在跨层连接上的主要区别使用相加和使用连结 图5.10中将部分前后相邻的运算抽象为模块 A A A和模块 B B B。与ResNet的主要区别在于DenseNet里模块 B B B的输出不是像ResNet那样和模块 A A A的输出相加而是在通道维上连结。这样模块 A A A的输出可以直接传入模块 B B B后面的层。在这个设计里模块 A A A直接跟模块 B B B后面的所有层连接在了一起。这也是它被称为“稠密连接”的原因。 DenseNet的主要构建模块是稠密块dense block和过渡层transition layer。前者定义了输入和输出是如何连结的后者则用来控制通道数使之不过大。 5.12.1 稠密块 DenseNet使用了ResNet改良版的“批量归一化、激活和卷积”结构我们首先在conv_block函数里实现这个结构。 import time import torch from torch import nn, optim import torch.nn.functional as Fimport sys sys.path.append(..) import d2lzh_pytorch as d2l device torch.device(cuda if torch.cuda.is_available() else cpu)def conv_block(in_channels, out_channels):blk nn.Sequential(nn.BatchNorm2d(in_channels), nn.ReLU(),nn.Conv2d(in_channels, out_channels, kernel_size3, padding1))return blk稠密块由多个conv_block组成每块使用相同的输出通道数。但在前向计算时我们将每块的输入和输出在通道维上连结。 class DenseBlock(nn.Module):def __init__(self, num_convs, in_channels, out_channels):super(DenseBlock, self).__init__()net []for i in range(num_convs):in_c in_channels i * out_channelsnet.append(conv_block(in_c, out_channels))self.net nn.ModuleList(net)self.out_channels in_channels num_convs * out_channels # 计算输出通道数def forward(self, X):for blk in self.net:Y blk(X)X torch.cat((X, Y), dim1) # 在通道维上将输入和输出连结return X在下面的例子中我们定义一个有2个输出通道数为10的卷积块。使用通道数为3的输入时我们会得到通道数为 3 2 × 10 23 32\times 1023 32×1023的输出。卷积块的通道数控制了输出通道数相对于输入通道数的增长因此也被称为增长率growth rate。 blk DenseBlock(2, 3, 10) X torch.rand(4, 3, 8, 8) Y blk(X) Y.shape # torch.Size([4, 23, 8, 8])5.12.2 过渡层 由于每个稠密块都会带来通道数的增加使用过多则会带来过于复杂的模型。过渡层用来控制模型复杂度。它通过 1 × 1 1\times1 1×1卷积层来减小通道数并使用步幅为2的平均池化层减半高和宽从而进一步降低模型复杂度。 def transition_block(in_channels, out_channels):blk nn.Sequential(nn.BatchNorm2d(in_channels), nn.ReLU(),nn.Conv2d(in_channels, out_channels, kernel_size1),nn.AvgPool2d(kernel_size2, stride2))return blk对上一个例子中稠密块的输出使用通道数为10的过渡层。此时输出的通道数减为10高和宽均减半。 blk transition_block(23, 10) blk(Y).shape # torch.Size([4, 10, 4, 4])5.12.3 DenseNet模型 我们来构造DenseNet模型。DenseNet首先使用同ResNet一样的单卷积层和最大池化层。 net nn.Sequential(nn.Conv2d(1, 64, kernel_size7, stride2, padding3),nn.BatchNorm2d(64), nn.ReLU(),nn.MaxPool2d(kernel_size3, stride2, padding1))类似于ResNet接下来使用的4个残差块DenseNet使用的是4个稠密块。同ResNet一样我们可以设置每个稠密块使用多少个卷积层。这里我们设成4从而与上一节的ResNet-18保持一致。稠密块里的卷积层通道数即增长率设为32所以每个稠密块将增加128个通道。 ResNet里通过步幅为2的残差块在每个模块之间减小高和宽。这里我们则使用过渡层来减半高和宽并减半通道数。 num_channels, growth_rate 64, 32 # num_channels为当前的通道数 num_convs_in_dense_blocks [4, 4, 4, 4]for i, num_convs in enumerate(num_convs_in_dense_blocks):DB DenseBlock(num_convs, num_channels, growth_rate)net.add_module(DenseBlosk_%d % i, DB)# 上一个稠密块的输出通道数num_channels DB.out_channels# 在稠密块之间加入通道数减半的过渡层if i ! len(num_convs_in_dense_blocks) - 1:net.add_module(transition_block_%d % i, transition_block(num_channels, num_channels // 2))num_channels num_channels // 2同ResNet一样最后接上全局池化层和全连接层来输出。 net.add_module(BN, nn.BatchNorm2d(num_channels)) net.add_module(relu, nn.ReLU()) net.add_module(global_avg_pool, d2l.GlobalAvgPool2d()) # GlobalAvgPool2d的输出: (Batch, num_channels, 1, 1) net.add_module(fc, nn.Sequential(d2l.FlattenLayer(), nn.Linear(num_channels, 10))) 我们尝试打印每个子模块的输出维度确保网络无误 X torch.rand((1, 1, 96, 96)) for name, layer in net.named_children():X layer(X)print(name, output shape:\t, X.shape)输出 0 output shape: torch.Size([1, 64, 48, 48]) 1 output shape: torch.Size([1, 64, 48, 48]) 2 output shape: torch.Size([1, 64, 48, 48]) 3 output shape: torch.Size([1, 64, 24, 24]) DenseBlosk_0 output shape: torch.Size([1, 192, 24, 24]) transition_block_0 output shape: torch.Size([1, 96, 12, 12]) DenseBlosk_1 output shape: torch.Size([1, 224, 12, 12]) transition_block_1 output shape: torch.Size([1, 112, 6, 6]) DenseBlosk_2 output shape: torch.Size([1, 240, 6, 6]) transition_block_2 output shape: torch.Size([1, 120, 3, 3]) DenseBlosk_3 output shape: torch.Size([1, 248, 3, 3]) BN output shape: torch.Size([1, 248, 3, 3]) relu output shape: torch.Size([1, 248, 3, 3]) global_avg_pool output shape: torch.Size([1, 248, 1, 1]) fc output shape: torch.Size([1, 10])5.12.4 获取数据并训练模型 由于这里使用了比较深的网络本节里我们将输入高和宽从224降到96来简化计算。 batch_size 256 # 如出现“out of memory”的报错信息可减小batch_size或resize train_iter, test_iter d2l.load_data_fashion_mnist(batch_size, resize96)lr, num_epochs 0.001, 5 optimizer torch.optim.Adam(net.parameters(), lrlr) d2l.train_ch5(net, train_iter, test_iter, batch_size, optimizer, device, num_epochs)输出 training on cuda epoch 1, loss 0.0020, train acc 0.834, test acc 0.749, time 27.7 sec epoch 2, loss 0.0011, train acc 0.900, test acc 0.824, time 25.5 sec epoch 3, loss 0.0009, train acc 0.913, test acc 0.839, time 23.8 sec epoch 4, loss 0.0008, train acc 0.921, test acc 0.889, time 24.9 sec epoch 5, loss 0.0008, train acc 0.929, test acc 0.884, time 24.3 sec小结 在跨层连接上不同于ResNet中将输入与输出相加DenseNet在通道维上连结输入与输出。DenseNet的主要构建模块是稠密块和过渡层。 参考文献 [1] Huang, G., Liu, Z., Weinberger, K. Q., van der Maaten, L. (2017). Densely connected convolutional networks. In Proceedings of the IEEE conference on computer vision and pattern recognition (Vol. 1, No. 2). 注除代码外本节与原书此节基本相同原书传送门
http://www.pierceye.com/news/974854/

相关文章:

  • 上海网站建设服wordpress友情链接排序
  • 沈阳市和平区网站建设编程课适合多大孩子学
  • 东阳网站优化懒人图库
  • 马关县网站建设专注营销型网站建设
  • 微信公众号公众平台太原seo关键词优化
  • 沈阳网站建设方案二级网站怎样被百度收录
  • 厦门数字引擎 怎么打不开网站youku网站开发技术
  • 中小企业网站建设论文郑州网站服务公司
  • 工信部网站备案验证码文化传媒网站封面
  • 境外做网站网站百度代运营
  • 南京学校网站建设策划手机网站默认全屏
  • 东莞公司网站策划万网买网站
  • 建筑网站视频大全做外汇网站卖判刑多少年
  • 手机网站菜单网页怎么做东莞网站优化方案
  • 公众号免费素材网站wordpress无法开始安装
  • 建设银行互联网网站首页网站备案 视频
  • 免费优化网站建设做app和网站哪个比较好用
  • 韩国最牛的设计网站大全网站设计的尺寸
  • 一家专门做特卖的网站类似非小号的网站怎么做
  • 怎么建一个网站出口外贸交易平台
  • iapp用网站做软件代码徐州网络推广公司排名
  • 设计之路 网站wordpress自定义字段火车头
  • 用什么服务器做盗版小说网站吗邓州十九张麻将微信群app开发公司
  • 高端网站设计找哪个公司WordPress 移动文件夹
  • 做网站的资料新媒体网站建设十大的经典成功案例
  • 西安移动网站建设丹东做网站的
  • 石家庄网站建设优化建湖做网站哪家最好
  • 外贸电商做俄罗斯市场网站电子商务网站建设的步骤一般为(
  • 济南网站建设联 系小七太仓网页制作招聘
  • 大同网站建设公司建大网站