DataWhale组队打卡学习营task05-1 卷积神经网络基础
卷积神经网络基础 二维卷积层 本节介绍的是最常见的二维卷积层,常用于处理图像数据。 二维互相关运算 二维互相关(cross-correlation)运算的输入是一个二维输入数组和一个二维核(kernel)数组,输出也是一个二维数组,其中核数组通常称为卷积核或过滤器(filter)。卷积核的尺寸通常小于输入数组,卷积核在输入数组上滑动,在每个位置上,卷积核与该位置处的输入子数组按元素相乘并求和,得到输出数组中相应位置的元素。图1展示了一个互相关运算的例子,阴影部分分别是输入的第一个计算区域、核数组以及对应的输出。 图1 二维互相关运算 下面我们用corr2d函数实现二维互相关运算,它接受输入数组X与核数组K,并输出数组Y。 import torch import torch . nn as nn def corr2d ( X , K ) : H , W = X . shape h , w = K . shape Y = torch . zeros ( H - h + 1 , W - w + 1 ) for i in range ( Y . shape [ 0 ] ) : for j in range ( Y . shape [ 1 ] ) : Y [ i , j ] = ( X [ i : i + h , j : j + w ] * K ) . sum ( ) return Y