PyTorch学习笔记(6)--神经网络:卷积层

本文是PyTorch学习笔记的第六部分,重点介绍了卷积层的使用。卷积层是神经网络中用于图像处理的关键组件,主要参数包括输入通道、输出通道、卷积核大小、步长和填充。通过实例展示了如何在CIFAR10数据集上构建和应用卷积层,以及如何利用Tensorboard观察卷积后的图像。文章还讨论了输入输出尺寸的计算方法,并预告了下一次将探讨池化层。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PyTorch学习笔记(6)–神经网络:卷积层

    本博文是PyTorch的学习笔记,第6次内容记录,主要介绍神经网络卷积层的基本使用。

1.卷积操作是什么

    关于具体什么是卷积操作,不是本文要讲的重点,但是本文的后续操作都是建立在卷积操作之上的,因此在学习卷积层的相关知识之前,很有必要弄清楚什么是卷积操作,这里推荐大家参照一下PyTorch官网中相关页面的动态图片展示卷积操作动态展示,此外还推荐大家参考下述博文中对卷积操作的详细讲解:卷积网络和卷积计算
    在进行下面的卷积层学习之前,至少要弄清楚卷积操作的基本步骤和方法。

2.卷积层

2.1卷积层相关参数

    在PyTorch官网中,详细介绍了常用的卷积操作函数:nn.Conv1d、nn.Conv2d、nn.Conv3d等,其中Conv1d针对一维的向量,Conv2d针对二维的向量,Conv3d针对三维的向量。在图像处理中,Conv2d的使用次数较多,因此本文以Conv2d为重点进行卷积层的介绍。
    在官网中关于卷积层的参数,描述如下:

Conv2d(in_channels, out_channels, kernel_size, stride=1,padding=0, dilation=1, groups=1,bias=True, padding_mode=‘zeros’)

    上述Conv2d函数一共涉及了9个参数,其中前5个参数是较为常用的参数,在使用过程中对其设置要注意其基本含义及作用。现对这9个参数的作用描述如下:
- in_channels:输入的通道数目 【必选】
- out_channels:输出的通道数目 【必选】
- kernel_size:卷积核的大小,类型为int 或者元组,当卷积是方形的时候,只需要一个整数边长即可,卷积不是方形,要输入一个元组表示 高和宽。【必选】(例如:设置kernel_size=3时,会自动生成一个3×3的卷积核)
- stride=1:卷积每次滑动的步长为多少,默认是 1 【可选】(例如:设置stride=1时,卷积核每次向右滑动一步,向下滑动一步;设置stride=2时,卷积核每次向右滑动2步,向下滑动2步)
- padding=0:设置在所有边界增加 值为 0 的边距的大小(也就是在feature map 外围增加几圈 0 ),例如当 padding =1 的时候,如果原来大小为 3 × 3 ,那么之后的大小为 5 × 5 。即在外围加了一圈 0 (外围包括上下左右的一圈)。【可选】
- dilation=1:控制卷积核之间的间距。不常用,一般设置为dilation=0【可选】具体解释可参见博文:Conv2d用法讲解
- groups=1:控制输入和输出之间的连接。(不常用)【可选】
- bias=True:是否将一个 学习到的 bias 增加输出中,默认是 True 。【可选】
- padding_mode=‘zeros’:字符串类型,接收的字符串只有 “zeros” 和 “circular”。当为“zero”时,表示在padding操作时,在外一圈是填充的0,【可选】关于padding是采用half padding 还是full padding,可以参照这个博文:卷积神经网络CNN理论到实践(3)
    注意:参数 kernel_size,stride,padding,dilation 都可以是一个整数或者是一个元组,一个值的情况将会同时作用于高和宽 两个维度,两个值的元组情况代表分别作用于 维度。

2.2卷积层应用实例

    现以CIFAR10数据集为例,详细介绍卷积层的使用方法。
     1. 通过下述代码下载数据集,并且实现自己的神经网络类Test:

# coding :UTF-8
# 文件功能: 代码实现神经网络--卷积层功能
# 开发人员: dpp
# 开发时间: 2021/8/16 4:18 下午
# 文件名称: nn_conv2d.py
# 开发工具: PyCharm

import torch
import torchvision
from torch import nn
from torch.nn import Conv2d
from torch.utils.data import</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值