MAE广泛应用于Transformer结构中,对于不同下游任务均有较好的优化效果,但如何用于CNN结构呢?
Designing BERT for Convolutional Networks: Sparse and Hierarchical Masked Modeling
本篇论文发现并攻克了将BERT-style预训练或者图像mask建模应用到CNN中的两个关键障碍:
1) CNN不能处理不规则的、随机的掩码输入图像;
2)BERT预训练的单尺度性质与convnet的层次结构不一致
实现的预训练方法简称为SparK,代码仓库在配置环境中有一些坑,分享一些经验
1、首先建立虚拟环境
conda create -n spark python=3.8 -y
conda activate spark
2、然后拉取仓库到本地
git clone https://github.com/keyu-tian/SparK.git
3、安装相关算法库
pip install torch==1.10.0+cu113 torchvision==0.11.1+cu113 -f https://download.pytorch.org/whl/torch_stable.html
pip install timm==0.5.4
cd SparK/pretrain
pip install -r requirements.txt
4、后续训练可能遇到的报错,建立提前安装避免报错
错误1:ModuleNotFoundError: No module named ‘pytz’
解决方式:
pip install --upgrade pytz
错误2:AttributeError: module ‘distutils’ has no attribute ‘ version’
解决方式:
pip install setuptools==59.5.0