pytorch学习笔记03-nn.Module-卷积-池化-激活函数

1. 构建模型

关键步骤:
(1) init() 构建子模块;
(2) forward() 拼接子模块;

2. torch.nn

主要包含: Parameter + Module + functional + init

(1) nn.Parameter

张量, 表示可学习参数,如:weight、bias等;

(2) nn.Module
 所有网络层基类,管理网络属性;
 每个module含8个字典OrderDict()管理他的属性;module可以包含多个多个子module;
 每个module必须实现forward();
(3) nn.functional

函数具体实现,如:卷积、池化、激活函数等;

(4) nn.init

参数初始化方法;

3. Containers

主要包含: nn.Sequential + nn.ModuleList + nn.ModuleDict

(1) nn.Sequential

按顺序包装多个网络层;
特点:顺序性 + 自带forward()

(2) nn.ModuleList

像python list一样包装多个网络层;
特点:迭代性;
主要方法:append() 、extend()、 insert()

(3) nn.ModuleDict

像python dict一样包装多个网络层;
特点:索引性;
主要方法:clear()、 items()、 keys()、 values()、 pop()

4. 卷积

如:
nn.Conv2d(in_channels,
out_channels,
kernel_size,
stride=1,
padding=0,
dilation=1, # 空洞卷积大小
groups=1, # 分组卷积设置
bias=True,
padding_mode=‘zeros’) 对多个二维信号进行二维卷积

公式:
out_size = (in_size-kernel_size)/stride + 1 结果向上取整

5. 转置卷积

(反卷积 Deconvolution + 部分跨越卷积 Fractionally=strided Convolution)

本质:对图像作上采样;

nn.ConvTranspose2d(in_channels,
out_channels,
kernel_size,
stride=1,
padding=0,
output_padding=0,
groups=1, # 分组卷积设置
bias=True,
dilation=1,
padding_mode=‘zeros’)

公式:
out_size = (in_size-1)*stride + kernel_size

6. 池化

nn.MaxPool2d(kernel_size,
stride=None,
padding=0,
dilation=1, # 池化核间隔大小
return_indices=False, # 记录池化像素索引
ceil_model=False # 尺寸向上取整
) 对二维图像进行最大值池化

nn.AvgPool2d(kernel_size,
stride=None,
padding=0,
ceil_model=False,
count_include_pad=True, # 填充值用于计算
divisor_overide=None # 除法因子
) 对二维图像进行平均值池化

nn.MaxUnpool2d(kernel_size,
stride=None,
padding=0) 对二维图像进行最大值池化上采样

7.线性层

nn.Linear(in_features,
out_features,
bias=True)

8.激活函数

nn.Sigmoid
nn.tanh
nn.ReLU
nn.LeakyReLU
nn.PReLU
nn.RReLU

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值