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

彭水网站建设网站建设天津

彭水网站建设,网站建设天津,国外域名备案,网站建设成功案例宣传#x1f31e;欢迎来到Pytorch的世界 #x1f308;博客主页#xff1a;卿云阁 #x1f48c;欢迎关注#x1f389;点赞#x1f44d;收藏⭐️留言#x1f4dd; #x1f31f;本文由卿云阁原创#xff01; #x1f4c6;首发时间#xff1a;#x1f339;2024年2月21日欢迎来到Pytorch的世界  博客主页卿云阁 欢迎关注点赞收藏⭐️留言 本文由卿云阁原创 首发时间2024年2月21日 ✉️希望可以和大家一起完成进阶之路 作者水平很有限如果发现错误请留言轰炸哦万分感谢 目录 普通卷积 黑白图像中的卷积 填充 步长为3 计算公式 多维卷积 多个卷积核 卷积的三种模式 Pytorch卷积层原理和示例 nn.conv1d nn.conv2d 深度可分离卷积 普通卷积 黑白图像中的卷积 填充 步长为3 计算公式 多维卷积 多个卷积核 卷积的三种模式         深度学习框架中通常会实现三种不同的卷积模式分别是 SAME、VALID、FULL。这三种模式的核心区别在于卷积核进行卷积操作的移动区域不同进而导致输出的尺寸不同。我们以一个例子来看这三种模式的区别输入图片的尺寸是 5×5 卷积核尺寸是 3×3 stride 取 1。 FULL 模式 FULL 模式下卷积核从与输入有一个点的相交的地方就开始卷积。如下图所示蓝框的位置就是卷积核第一个卷积的地方灰色部分是为了卷积能够正常进行的 padding一般填 0。因此 FULL 模式下卷积核移动区域最大卷积后输出的尺寸也最大。 VALID 模式 VALID 模式与 FULL 模式相反在整个卷积核与输入重叠的地方才开始卷积操作因此不需要 padding输出的尺寸也最小。 SAME 模式 SAME 模式是最常用的一种模式SAME 的意思是卷积后输出的尺寸与输入尺寸保持一致假定 stride 为 1。通过将卷积核的中心与输入的第一个点进行对齐确定卷积核起始位置然后补齐对应 padding 即可。如下图所示可以看到卷积输出的尺寸与出入保持一致。 SAME 模式下当卷积核边长为偶数时可以通过在其中一边增加多一行列padding即不对称的 padding 实现输出尺寸与输入尺寸保持一致如下图所示卷积核尺寸为 2×2  以上三种模式区别在于卷积核进行卷积操作的移动区域不同其实是确定了所需的 padding。各种模式 padding 计算如下: def get_padding(inputs, ks, modeSAME):Return padding list in different modes.params: inputs (input array)params: ks (kernel size) [p, q]return: padding list [n,m,j,k]pad Noneif mode FULL:pad [ks[0] - 1, ks[1] - 1, ks[0] - 1, ks[1] - 1]elif mode VALID:pad [0, 0, 0, 0]elif mode SAME:pad [(ks[0] - 1) // 2, (ks[1] - 1) // 2,(ks[0] - 1) // 2, (ks[1] - 1) // 2]if ks[0] % 2 0:pad[2] 1if ks[1] % 2 0:pad[3] 1else:print(Invalid mode)return pad      确定了输入尺寸、卷积核尺寸、padding 以及 stride输出的尺寸就被确定下来可以由以下公式计算。 Pytorch卷积层原理和示例 nn.conv1d conv1d是一维卷积它和conv2d的区别在于只对宽度进行卷积对高度不卷积。 函数定义 torch.nn.functional.conv1d(input, weight, biasNone, stride1, padding0, dilation1, groups1)参数说明: input输入的Tensor数据格式为(batch,channels,W)三维数组第一维度是样本数量第二维度是通道数或者记录数。三维度是宽度。weight卷积核权重也就是卷积核本身。是一个三维数组(out_channels, in_channels/groups, kW)。out_channels是卷积核输出层的神经元个数也就是这层有多少个卷积核in_channels是输入通道数kW是卷积核的宽度。bias位移参数可选项一般也不用管。stride滑动窗口默认为1指每次卷积对原数据滑动1个单元格。padding是否对输入数据填充0。Padding可以将输入数据的区域改造成是卷积核大小的整数倍这样对不满足卷积核大小的部分数据就不会忽略了。通过padding参数指定填充区域的高度和宽度默认0就是填充区域为0不填充的意思dilation卷积核之间的空格默认1。groups将输入数据分组通常不用管这个参数没有太大意义。 代码: import torch from torch.autograd import Variable import torch.nn as nn import torch.nn.functional as Farange(16) x Variable(torch.Tensor(a))a: range(0, 16) x: tensor([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13.,14., 15.]) xx.view(1,1,16)x variable: tensor([[[ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., 14., 15.]]]) btorch.ones(3) b[0]0.1 b[1]0.2 b[2]0.3 weights Variable(b) weightsweights.view(1,1,3)weights: tensor([[[0.1000, 0.2000, 0.3000]]]) yF.conv1d(x, weights, padding0)y: tensor([[[0.8000, 1.4000, 2.0000, 2.6000, 3.2000, 3.8000, 4.4000, 5.0000, 5.6000, 6.2000, 6.8000, 7.4000, 8.0000, 8.6000]]])nn.conv2d 函数定义 nn.Conv2d(self, in_channels, out_channels, kernel_size, stride1, padding0, dilation1, groups1, biasTrue))参数 in_channel: 输入数据的通道数例RGB图片通道数为3out_channel: 输出数据的通道数这个根据模型调整kennel_size: 卷积核大小可以是int或tuplekennel_size2,意味着卷积大小(2,2)                              kennel_size2,3意味着卷积大小23即非正方形卷积stride步长默认为1与kennel_size类似stride2,意味着步长上下左右扫描皆为2                         stride2,3左右扫描步长为2上下为3 padding 零填充 代码 import torch import torch.nn as nn from torch.autograd import Variabler torch.randn(5, 8, 10, 5) # batch, channel , height , width print(r.shape)r2 nn.Conv2d(8, 14, (3, 2), (2,1)) # in_channel, out_channel ,kennel_size,stride print(r2)r3 r2(r) print(r3.shape)torch.Size([5, 8, 10, 5]) Conv2d(8, 14, kernel_size(3, 2), stride(2, 1)) torch.Size([5, 14, 4, 4]) 深度可分离卷积 论文《Xception: Deep Learning with Depthwise Separable Convolutions》 代码API 逐深度卷积 不同于原始卷积深度卷积是一个卷积核负责一个通道独立地在每个通道上进行空间卷积。因此深度卷积的输出特征图数量等于输入特征图数量无法进行有效的维度扩展。 逐点卷积 由于一个特征图仅被一个滤波器卷积无法有效的利用不同通道在相同空间位置上的特征信息由此加入了逐点卷积。点卷积主要是要1×1卷积构成负责将深度卷积的输出按通道投影到一个新的特征图上。  重复多次1x1的卷积操作如下图为128次则最后便会得到一个深度的卷积结果。 代码实现 class DeepWise_PointWise_Conv(nn.Module):def __init__(self, in_ch, out_ch):super(DeepWise_PointWise_Conv, self).__init__()# 深度卷积层Depthwise Convolutionself.depth_conv nn.Conv2d(in_channelsin_ch, # 输入通道数out_channelsin_ch, # 输出通道数每个输入通道对应一个输出通道kernel_size3, # 卷积核大小这里是3x3的深度卷积核stride1, # 步长padding1, # 填充groupsin_ch # 输入通道数等于组数每个输入通道分配一个卷积核)# 点卷积层Pointwise Convolutionself.point_conv nn.Conv2d(in_channelsin_ch, # 输入通道数这里等于深度卷积层的输出通道数out_channelsout_ch, # 输出通道数决定了最终的特征图数量kernel_size1, # 卷积核大小为1x1即点卷积stride1, # 步长padding0, # 无填充groups1 # 输入通道数等于组数每个输入通道独享一个卷积核)def forward(self, input):# 深度卷积out self.depth_conv(input)# 点卷积out self.point_conv(out)return out#将普通卷积替换成深度可分离卷积 nn.Conv2d(32,128,kernal_size3,stride1,padding1)DepthWiseConv(32,128)
http://www.zqtcl.cn/news/6268/

相关文章:

  • 静态网站建设流程怎么写个人网站有哪些站
  • 商务局网站溪江农贸市场建设2023年国家免费技能培训
  • 网站建设招标赤峰网站建设培训
  • 如何挑选网站建设平台提升网站收录
  • 全国好的深圳网站设计淘宝优秀软文范例100字
  • 上海公司企业网站怎么做哪些网站可以做店淘客
  • 为什么学网站开发企业网站推广哪些效果比较好
  • 网站建设培训 店大理公司网站建设
  • 深圳专业建网站公司黄冈网站建设策划
  • 网站维护工单凡科怎么建设网站
  • 前端开发常用网站wordpress文章页面添加内容
  • 哪些网站微信支付平台东莞seo建站优化工具
  • 网上书店网站建设目标计算机学软件开发哪个学校好
  • 公司网站二维码怎么做wordpress安装微信聊天工具
  • 深圳商城网站设计多少钱企业为什么做网站系统
  • 武功网站建设产业园区运营公司
  • 0505网页制作与网站建设免费学校网站系统
  • 纳雍网站建设公司h5小程序开发多少钱一天
  • 如何快速推广一个网站网站模板 国外
  • 五道口网站建设公司营销和销售的区别在哪里
  • 网站建设报价明细单做网站帮外国人淘宝
  • 企业网站管理制度建设.net 网站模板下载地址
  • 如何做pdf电子书下载网站提升网站的访问速度
  • 网站优化工作hao123上网主页官网设置成主页
  • 网站动效是代码做的吗网站域名与网站首页网址
  • 微信用网站怎么做阿里企业邮箱注册申请免费
  • seo外贸仿牌网站换域名淘宝客做连接网站
  • 网站制作中文版seo 工具推荐
  • 济南优化网站排名物流软件app前十名
  • 安全联盟可信任网站认证 网站定制类做网站多少钱