当前位置:   article > 正文

Pytorch基础(四)—— 卷积层_卷积层输入维度

卷积层输入维度

一、概念

卷积从数学的角度讲是一种矩阵的运算方法。我们可以用一个卷积核对一个矩阵进行卷积运算,具体运算过程图示可以见pytorch官网
在这里插入图片描述
在这里插入图片描述

卷积运算按输入数据的通道数可分为单通道和多通道两种。
单通道是指卷积核只有一个的情况。
多通道包括两种。
分别是单个卷积核对应多通道输入;多卷积核对应多通道输入,这种最常见。
具体内容可见文章。
深度学习笔记(一):卷积层+池化层+激活函数+全连接层

二、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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

卷积结果如下:
原图原图
在这里插入图片描述卷积后
从图的变化来看,卷积后的图片保留了原始图片的边缘特征。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/194238
推荐阅读
相关标签
  

闽ICP备14008679号