pytorch学习(六):卷积层的使用

卷积函数的概念

  • 卷积核从输入特征图的左上角开始,按照设定的步长(Stride)滑动。步长决定了卷积核每次滑动的像素数,这里我们假设步长 s=1
  • 在每次滑动时,卷积核与输入特征图对应位置的元素相乘,然后将这些乘积相加得到一个输出值。

torch.nn.functional 

conv2d卷积函数的参数为例:

参数说明:

input:要求的输入shape为4个。(minibatch,通道,高,宽)

        如果输入的input的shape不符合要求,可以通过torch.reshape来进行reshape。

stride:步数,卷积核移动的步长 

padding:在图像的上下左右进行填充(填充的数一般设置为0),可以指定一个数,也可以指定一个元组。填充的目的是为了增加感受野,充分利用边缘信息,使里面的数被用到的次数均匀一些。

遇见问题1:为什么二维张量卷积后变成了四维张量呢?

解决办法:在进行规范性输入的时候,二维张量reshpe成了四维张量,所以变成了四维张量。

torch.nn

卷积层:

in_chanels:输入图片的数量,比如,输入一个图片就是in_chanel为1.

out_chanels:输出的由卷积后产物的数量,比如out_chanel=1就是卷积后的产物有一个;out_chanel=2就是卷积核会有两个,每个卷积核分别与输入进行卷积,得到两个卷积后的产物,然后两个叠加起来(三明治有两篇面包)就是一个输出。

dilation: 卷积核对应位的距离

bias:对卷积的结果是否加减一个常数。

groups:分组卷积(一半设置为1,很少使用)

padding:在图像的上下左右进行填充(填充的数一般设置为0),可以指定一个数,也可以指定一个元组。填充的目的是为了增加感受野,充分利用边缘信息,使里面的数被用到的次数均匀一些。

padding_mode:填充模式,选择0填充还是1填充。

import torch
import torchvision
from torch.utils.data import DataLoader
from torch import nn
from torch.nn import Conv2d
from torch.utils.tensorboard import SummaryWriter

dataset=torchvision.datasets.CIFAR10('./dataset',train=False,transform=torchvision.transforms.ToTensor(),download=True)

dataloader=DataLoader(dataset,batch_size=64)
class WWJ(nn.Module):
    def __init__(self):
        super().__init__()
        self.conv1 =Conv2d(in_channels=3,out_channels=6,kernel_size=3,stride=1)

    def forward(self,x):
        x=self.conv1(x)
        return x

wang=WWJ()

print(wang)

# write=SummaryWriter('logs')
# step=0
for data in dataloader:
    imgs,targets=data
    output=wang(imgs)
    # print(imgs.shape) #torch.Size([64, 3, 32, 32])
    # print(output.shape)  #torch.Size([64, 6, 30, 30])
    # write.add_images("input",imgs,step)
    # write.add_image("output",output,step)
    # step=step+1

    

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值