赞
踩
卷积从数学的角度讲是一种矩阵的运算方法。我们可以用一个卷积核对一个矩阵进行卷积运算,具体运算过程图示可以见pytorch官网。
卷积运算按输入数据的通道数可分为单通道和多通道两种。
单通道是指卷积核只有一个的情况。
多通道包括两种。
分别是单个卷积核对应多通道输入;多卷积核对应多通道输入,这种最常见。
具体内容可见文章。
深度学习笔记(一):卷积层+池化层+激活函数+全连接层
在torch.nn下,卷积层按输入数据维度可分为1维,2维,3维。最常用的就是2维Conv2d,参数解释可以见官网。
下面用CIFAR10数据集做测试。
import torch
import torchvision
from torch import nn
from torch.nn import Conv2d
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
dataset = torchvision.datasets.CIFAR10("../dataset", train=False, transform=torchvision.transforms.ToTensor(), download=False)
dataloader = DataLoader(dataset, batch_size=64)
class Wzh(nn.Module):
def __init__(self):
super(Wzh, self).__init__()
self.conv1 = Conv2d(in_channels=3, out_channels=6, kernel_size=3)
def forward(self, a):
a = self.conv1(a)
return a
wzh = Wzh()
w = SummaryWriter("Conv2D")
i = 0
for data in dataloader:
imgs, targets = data
output = wzh(imgs)
output = torch.reshape(output, (-1, 3, 30, 30))
w.add_images("input", imgs, i)
w.add_images("output", output, i)
i = i + 1
卷积结果如下:
原图
卷积后
从图的变化来看,卷积后的图片保留了原始图片的边缘特征。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。