卷积核经过的那部分区域,对应位置的数字进行相乘,最后再相加
out_channel:卷积核的个数
out_channel=1时,会有一个卷积核,输出一个矩阵
out_channel=2时,会有两个卷积核,输出两个矩阵
stride代表卷积核每次移动n个格子
padding代表在原矩阵外面填充一圈,一般用0补全
对于最初输入图片样本的通道数 in_channels
取决于图片的类型,如果是彩色的,即RGB类型,这时候通道数固定为3,如果是灰色的,通道数为1
代码如下:
import torch import torchvision from torch.nn import Conv2d from torch.utils.data import DataLoader dataset=torchvision.datasets.CIFAR10("../data",train=False,transform=torchvision.transforms.ToTensor(), download=True) dataloader=DataLoader(dataset,batch_size=64) class Tudui(nn.Module): def __init__(self): super(Tudui, self).__init__() self.conv1=Conv2d(in_channels=3,out_channels=6,kernel_size=3,stride=1,padding=0) def forward(self,x): self.conv1(x) return x tudui=Tudui() print(tudui) for data in dataloader: imgs,targets=data output=tudui(imgs) print(imgs.shape) #输出原图的维度[64,3,32,32]分别代表batch-size=64,in_channels=3,32x32的图片 print(output.shape) #卷积之后的维度[64,6,30,30]分别代表batch-size=64,out_channels=6,30x30的图片
输出结果: