2D CNN

本文详细介绍了2D卷积神经网络的不同结构,包括基本卷积、ResNet10的残差学习、Inception系列的演变,如V1-V4的特点,并探讨了BN层的作用以及Xception模型中深度可分离卷积的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.        二维卷积模型

1.1.        Basic Convolution


具体到计算中使用cublas的gemm方法。

设输入为nclhw,卷积核为c”cl’h’w’,输出为c”l”h”w”,步长s,补偿p。

输出与输入的关系:L”=(l+2p-l’)/s+1

输入与输出相等时:p=[s(l-1)+l’-l]/2

矩阵相乘:c”*cl’h’w’ 与 nl”h”w”*cl’h’w’ 相乘

1.2.        Resnet10


残差结构有利于学习Identify map,bottleneck在中间降维有利于减少参数量。

例:256*3*3*256 à 256*1*1*64 + 64*3*3*64 + 64*1*1*256 = 896*64

1.3.        Inception

1.3.1.       V111


### 1D卷积神经网络中的平均池化 在1D卷积神经网络(CNN)中,平均池化是一种下采样技术,用于减少特征图的空间尺寸并提取主要特征。对于一维输入数据,平均池化操作通过滑动窗口来执行,在该窗口内取均值作为输出的一部分。 假设有一个长度为\(L\)的一维输入向量\(\mathbf{x}=[x_0, x_1,...,x_{L-1}]^T\)以及大小为\(k\)的池化核,则第\(i\)个位置上的平均池化输出可以表示如下: \[y_i=\frac{1}{k}\sum^{j=k-1}_{j=0}x_{i+j}, \quad i=0,\dots,L-k\] 这里,\(y_i\)代表经过平均池化后的输出序列中的元素;分母\(k\)即为池化窗口宽度,分子部分是对当前窗口内的所有元素求和[^1]。 当处理边界情况时,如果最后一段的有效区域不足以填满整个池化窗,则通常有两种策略可以选择:一是忽略这部分不完整的片段;二是调整最后一个窗口的位置使得其刚好覆盖到输入结尾处,并采用填充零或其他方式补全不足的部分再做运算。 为了更好地理解这个过程,下面给出一段Python代码实现简单的1D平均池化功能: ```python import numpy as np def avg_pooling_1d(x, kernel_size): output_length = len(x) - kernel_size + 1 y = [] for i in range(output_length): window_sum = sum([x[i + j] for j in range(kernel_size)]) pooled_value = window_sum / float(kernel_size) y.append(pooled_value) return np.array(y) # 测试案例 input_data = [4., 2., 7., 9., 3.] kernel_width = 3 output_result = avg_pooling_1d(input_data, kernel_width) print("Input:", input_data) print("Output after Average Pooling with Kernel Size {}: {}".format(kernel_width, list(output_result))) ``` 上述程序定义了一个名为`avg_pooling_1d()`函数,它接受两个参数——待处理的数据列表`x`和平铺层窗口大小`kernel_size`。此函数会遍历输入数组,按照指定步幅应用平铺操作并将结果存储在一个新的列表里返回给调用者。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值