main文件
def 定义一个字符布尔转换
def 参数
补充知识:
argparse的使用简化步骤:
import argparse:首先导入模块
parser = argparse.ArgumentParser():创建一个解析对象
[arser.add_argument():像该对象中添加需要关注的命令行参数和选项
parser.parse_args(): 调用parse_args()方法进行解析,解析成功之后可以使用
定义参数里面定义了几个参数:
1、通用参数3个:batch_size、epochs、update_freq(gradient accumulation steps梯度积累步骤)(补充知识:gradient_accumulation_steps是梯度累积次数,累积几次,原本的loss就要除以几,这是为了对多个批次的数据的梯度做累积。一个小trick,用来间接增大batchsize,举例:一个batchsize是16,gradient accumulation steps=4,意思就是64条数据再进行梯度更新)
2、模型参数4个:model、drop_path、input_size、layer_scale_inti_value(Layer scale initial values 图层比例初始值)
3、EMA相关参数4个:
4、优化器参数12个:
opt、opt_eps , opt_betas , clip_grad(Clip gradient norm ,如果梯度超过阈值就进行截断) , momentum , weight_decay , weight_decay_end ,
5、Augmentation 4个参数
color_jitter、aa(Use AutoAugment policy)、smoothing、train_interpolation(Training interpolation(训练插值))
6、评估参数
crop_pct
7、随机擦除参数?Random Erase params(这个不应该也放到数据增强里面用吗?)
8、Mixup params(全局融合)
9、微调4个参数
finetune、head_init_scale(classifier head initial scale, typically adjusted in fine-tuning,分类器头部权重的缩放比例,通过调整这个值可以控制分类器头部权重的初始值)、model_key(which key to load from saved state dict, usually model or model_ema,从checkpoint里面加载哪个模型的权重)、model_prefix
10、Dataset 14个参数
--data_path', default='/datasets01/imagenet_full_size/061417(图片路径里面提到的imagenet_full_size是什么意思?)
resume(断点训练)
11、分布式训练参数5个(distributed training)
world_size、local_rank等
12、权重和偏置参数3个(Weights and Biases arguments)
注意;DepthWiseConv2dImplicitGEMM没有导入进去,先试试conv2d是否可以
main函数
sequential看creat模型结构
model=ConvNeXt()
head:
参数量:27823973
lr_schedule_values = 学习率变化(设置了一个自动变化的值)
里面报错:cosine_scheduler,捋一下逻辑:
函数:cosine_scheduler(参数:base_value, final_value, epochs, niter_per_ep, warmup_epochs=0, start_warmup_value=0, warmup_steps=-1)