深度学习的unfold操作

        unfold(展开)是深度学习框架中常见的数据操作。与我们熟悉的卷积类似,unfold也是使用一个特定大小的窗口和步长自左至右、自上至下滑动,不同的是,卷积是滑动后与核求乘积(所以取名为卷积),而unfold滑动后不求乘积,是将窗口内的数据展开。

例如:

        有一个如下内容的张量:[[[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]]],其数据阵列为:

使用(2*2)的核,步长为2,在上述的数据阵列内滑动,得到了四个窗口数据:

将每一个滑动窗口的数据展平为一维数据,得到:

 即:[[[1, 2, 5, 6], [3, 4, 7, 8], [9, 10, 13, 14], [11, 12, 15, 16]]]

三维数据(如彩色图像)的情况

        对于彩色图像这样的三维数据,unfold操作会对每个通道分别进行上述的二维展开操作。通道维度保持不变,只是每个通道的数据都按照窗口大小和步长展开并重新排列。例如,一个 RGB 图像,在对其进行unfold操作时,红色通道、绿色通道和蓝色通道的数据都会被独立地按照定义的窗口和步长展开,然后将这些展开后的通道数据按照原来的通道顺序组合在一起,形成新的张量。

应用场景

unfold 操作的常见应用场景包括:

        • 卷积层:将卷积操作转换为矩阵乘法,提高计算效率。

        • 池化层:在池化操作中,将输入数据转换为适合进行最大值或平均值计算的形式。

        • 自定义层:在自定义的神经网络层中,用于实现特定的局部操作。

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深蓝海拓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值