深度学习预训练与MMPreTrain
【MMPretrain定义】
--是一个全新升级的预训练开源算法框架。
--旨在提供各种强大的预训练主干网络,并支持了不同的训练策略。
--源自MMClassification和MMSelSup,且融入了多模态算法库。
--文档教程
--代码仓库
【MMPreTrain安装步骤】
--基础安装
conda create -n open-mmlab python=3.8
pytorch==1.10.1 torchvision==0.11.2 cudatoolkit=11.3-c pytorch -y
conda activate open-mmlab
pip install openmim
git clone http://github.com/open-mmlab/mmpretrain.git
cd mmpretrain
mim install -e .
--多模态安装
mim install -e ".[multimodal]"
可以使用MIM配置MMCV,MMEngine和 MMPreTrain。
【配置文件】
深度学习模型的训练涉及几个方面:
【代码框架】
--apis:顶层api接口,支持各类推理任务
--datasets:支持了各类数据集,数据变换等
--engine:各类评测相关函数和指标计算
--evaluation:各类评测相关函数和指标计算
--models:各类算法模型的定义:
* backbones:一般为图像的特征提取器,各类主干网络的定义
* necks:则为承接backbone和head之间的其他计算(例如高维特征解码,多尺度特征融合等)
* heads:则主要为相关loss计算和推理结果的预测
* classifier、selfsup、multimodal:为模型高阶抽象定义
--structures:DataSample数据结构的定义
--utils:相关工具
--visualization:可视化的支持
【数据流】
【配置文件的运作方式】
【残差建模】
--让新增加的层拟合浅层网络与深层网络之间的差异,更容易学习梯度可以直接回传到浅层网络监督浅层网络的学习。
--没有引入额外参数,让参数更有效贡献到最终的模型中。
【Attention for 1D data】
【Multi-head】
【课程参考】