MobileNetV3
bneck层
配套MobileNetV3视频讲解
super详解
在单继承中 super主要是用来调用父类的方法的
了解torch
torch.nn
nn是Neural Network的简称,帮助程序员方便执行如下的与神经网络相关的行为:
(1)创建神经网络
(2)训练神经网络
(3)保存神经网络
(4)恢复神经网络
nn.Model
PyTorch 源码解读之 nn.Module:核心网络模块接口详解
pytorch nn.Module()模块
pytorch教程之nn.Module类详解——使用Module类来自定义网络层
pytorch教程之nn.Module类详解——使用Module类来自定义模型
为什么pytorch的nn.Module的forward函数在实例化的时候不需要被调用?
说明:当继承nn.Module的函数被调用时,实际上传入的参数是传递给了forward函数
LRaSPP空洞空间卷积池化金字塔
金字塔池化系列的理解SPP、ASPP
SPP-Net、Atrous Convolution以及ASPP by Rose
深入理解空洞卷积
讲解视频
针对的问题及作用:
ResNet50Encoder残差网络编码器
ResNet-50网络理解
resnet50结构图
decoder.py
Tensor数据类型
Tensor张量数据类型(官方)
torch.Tensor是一种包含单一数据类型元素的多维矩阵,类似于二维数组
Tensor的基本使用
nn.AvgPool2d
对信号的输入通道,提供2维的平均池化(average pooling )
输入信号的大小(N,C,H,W),输出大小(N,C,H_out,W_out)和池化窗口大小(kH,kW)的关系是:
o u t ( N i , C j , h , w ) = 1 / ( k H k W ) ∑ k H − 1 m = 0 ∑ k W − 1 n = 0 i n p u t ( N i , C j , s t r i d e [ 0 ] h + m , s t r i d e [ 1 ] w + n ) out(N_i,C_j,h,w)=1/(kHkW)\sum^{kH-1}{m=0}\sum^{kW-1}{n=0}input(N_{i},C_{j},stride[0]h+m,stride[1]w+n) out(Ni,Cj,h,w)=1/(kHkW)∑kH−1m=0∑kW−1n=0input(Ni,Cj,stride[0]h+m,stride[1]w+n)
如果padding不是0,会在输入的每一边添加相应数目0
参数:
kernel_size(int or tuple) - 池化窗口大小
stride(int or tuple, optional) - max pooling的窗口移动的步长。默认值是kernel_size
padding(int or tuple, optional) - 输入的每一条边补充0的层数
dilation(int or tuple, optional) – 一个控制窗口中元素步幅的参数
ceil_mode - 如果等于True,计算输出信号大小的时候,会使用向上取整,代替默认的向下取整的操作
count_include_pad - 如果等于True,计算平均池化时,将包括padding填充的0
flatten函数
作用:将张量展平,降维
torch.faltten官网
维度改变计算
具体展平的一个例子
unflatten官网数据反扁平化,与上面的函数作用相反
nn.Sequential官网
作用:这是一个有顺序的容器,将特定神经网络模块按照在传入构造器的顺序依次被添加到计算图中执行
pytorch中的顺序容器——torch.nn.Sequential
torch.nn.Conv2d卷积块 官网
Pytorch.nn.conv2d 过程验证(单,多通道卷积过程)
nn.BatchNorm2d批量标准化 官网
什么是批标准化 (Batch Normalization)
nn.ReLU激活函数 官网
conv卷积网络基本单元
conv=conv2d+BanchNorm2d+ReLU(卷积三件套)
nn.Tenh激活函数 官网
nn.Sigmoid激活函数 官网
nn.cat 拼接 官网
作用:将两个张量拼接在一起
PyTorch的torch.cat
Bilinear双线性插值
双线性插值2
抠图和语义分割的区别
抠图和语义分割的区别与联系
机器学习里面的Ground Truth是什么意思
Deep Guided Filter Refinr深度导向滤波器
作用:解决联合上采样任务,将低分辨率 alpha、前景、最终隐藏特征以及高分辨率输入帧提供给 DGF 模块,生成高分辨率 alpha 和前景
论文解释:
我们采用[44]中提出的 Deep Guided Filter (DGF)进行
高分辨率预测。当处理像 4K 和 HD 这样的高分辨率视
频时,我们在通过编码器-解码器网络之前将输入帧向下
采样一个因子 s。然后将低分辨率 alpha、前景、最终隐
藏特征以及高分辨率输入帧提供给 DGF 模块,生成高分
辨率 alpha 和前景。整个网络的训练端到端,如第 4 节
所述。注意,如果要处理的视频分辨率较低,DGF 模块
是可选的,编码器-解码器网络可以独立运行。
基于可学习参数的深度导向滤波器 Deep Guide Filter
门控循环单元(GRU)
model.py
forward
定义每次调用时执行的计算,应该被所有子类覆盖。
python 语法
Python 函数装饰器
assert in 断言
作用:用于检查variant是否是mobilenetv3或resnet50,不是的话报错
Optional类
作用:可选类型,作用几乎和带默认值的参数等价,不同的是使用Optional会告诉你的IDE或者框架:这个参数除了给定的默认值外还可以是None,而且使用有些静态检查工具如mypy时,对 a: int =None这样类似的声明可能会提示报错,但使用a :Optional[int] = None不会