一、单输入通道的一维互相关运算
1、原理
在单输入通道的一维互相关运算中,卷积窗口从输入数组的最左方开始,按从左往右的顺序,依次在输入数组上滑动。当卷积窗口滑动到某一位置时,窗口中的输入子数组与核数组按对应元素相乘并求和,得到输出数组中相应位置的元素。
由上图所示,输入数组是一个长度为7的一维数组,核数组是一个长度为2的一维数组,可以看到输出数组的长度为7−2+1=6。
单输入通道的一维互相关计算就是由输入数组的最左边长度为2的子数组与核数组按元素相乘后再相加得到输出数组的第一个元素值,即0×1+1×2=0+2=2。依次类推得到输出数组的第二个元素值,即1×1+2×2=1+4=5等等。
2、代码
复现单输入通道的一维互相关运算,代码如下:
import torch
def Crosscorrelation1Dim(input, kernel): # input = [0 1 2 3 4 5 6]; kernel = [1 2]
k = kernel.shape[0] # k = 2
output = torch.zeros((input.shape[0] - k + 1)) # output = [0. 0. 0. 0. 0.