深度学习之常用算子介绍

打开 onnx 模型图,可以看到它是一个有向无环图。除了 Input、Output ,其他都是算子(是操作,而不是节点)
image.png

在ONNX(Open Neural Network Exchange)模型中,除了输入和输出,其他都是算子(Operations)。算子是表示神经网络模型中的不同操作或层的元素。一个ONNX模型由一系列算子组成,通过连接这些算子来定义模型的计算流程。

常见的算子包括卷积、全连接、池化、激活函数(如ReLU、Sigmoid)、批归一化(如Batch Normalization)、Dropout等。每个算子都有自己的输入和输出张量,并且可能有一些可调参数用于控制其行为。

算子之间的连接关系形成了一个有向图,反映了模型中不同操作的计算顺序。输入张量通过算子进行计算,然后产生输出张量,这些输出张量又可以作为其他算子的输入。最后一个算子的输出张量即为模型的输出。

ONNX提供了一种通用的中间表示形式,使得各种深度学习框架之间可以相互转换模型。通过使用ONNX,可以将模型从一个框架导出为ONNX格式,然后将其导入到另一个框架中进行训练或推理。这种灵活性使得研究人员和开发人员能够更方便地在不同框架之间共享和使用模型。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
在onnx中,每个 conv 算子算一层

Conv (卷积)

image.png
conv 相当于在 gemm 基础上做了稀疏化和权重共享

attribute(属性)

pad 补零: auto_pad 自动补零 pads 指定补零
dilations 膨胀:

用于指定卷积核在输入张量的各个维度上的扩张率。这个属性是一个整数列表,长度通常与输入张量的维度相同。每个整数表示对应维度上的扩张率。
dilations 用于控制卷积核在输入张量的各个维度上的滑动步长,通过增加扩张率可以增加卷积操作的感受野,提取更多的特征信息。

image.png
group(分组):

在深度卷积神经网络中,group属性用于指定卷积操作的分组数。这个属性是一个整数值,用于将输入张量和卷积核进行分组,并对每个组进行独立的卷积运算。
具体来说,当group属性的值大于1时,输入张量和卷积核会被分成group个组,每个组包含相同数量的通道。然后,对每个组进行独立的卷积运算,最后将各个组的输出结果进行拼接,得到最终的卷积操作的输出张量。
总结来说,group属性用于将输入张量和卷积核进行分组,并对每个组进行独立的卷积运算。通过设置group属性,可以减少卷积操作的计算量,但可能会降低特征的表达能力。

kernel_shape(卷积核形状)

kernel_shape属性用于指定卷积核的形状。kernel_shape是一个整数列表,其长度应与输入张量的维度相同,每个元素表示卷积核在对应维度上的大小。
具体来说,对于二维卷积操作,输入张量的形状通常为[batch_size, height, width, channels],而kernel_shape应该是一个长度为2的整数列表,表示卷积核在高度和宽度上的大小。
例如,如果希望使用一个3x3的卷积核进行二维卷积操作,可以将kernel_shape设置为[3, 3]。
需要注意的是,kernel_shape属性只用于指定卷积核的形状,卷积核的通道数是由卷积层的参数决定的,而不是通过kernel_shape属性来指定的。
总结起来,kernel_shape属性是用于指定卷积核形状的属性,它是一个整数列表,长度与输入张量的维度相同,每个元素表示卷积核在对应维度上的大小。

strides(步长)

conv属性strides是卷积层的步长参数,用于控制卷积核在输入数据上滑动的步幅。它是一个包含两个整数的元组,分别表示在水平和竖直方向上的步长大小。默认值为(1, 1),即卷积核每次水平和竖直方向上移动一个像素。较大的步长可以减少输出特征图的大小,同时也会降低模型的计算量。

Input

深度学习常用的上采样算子有最近邻插值、双线性插值、pixelshuffle、unpool和逆卷积。最近邻插值是一种简单的上采样方法,它根据原始图像中最近的像素值来填充新的像素。双线性插值通过对原始图像中的四个最近领域像素进行加权平均来计算新的像素值,以实现更平滑的上采样效果。pixelshuffle是一种特殊的上采样方法,它通过重排输入张量的通道来实现上采样。unpool是一种与pooling操作相对应的上采样方法,它通过保存pooling操作时的最大值位置信息来还原原始输入。逆卷积是一种基于卷积操作的上采样方法,它通过在原始图像上应用反向卷积核来增加图像的尺寸。这些上采样算子深度学习中被广泛应用于图像处理和语义分割等任务中。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [深度学习几种上采样方法代码,最近邻插值,双线性插值,pixelshuffle,unpool,逆卷积等示例代码](https://download.youkuaiyun.com/download/qq_40035462/85019559)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [深度学习中上采样方法总结](https://blog.youkuaiyun.com/Mike_honor/article/details/126538091)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值