coco数据集处理的参数详解(w32_4x_reg03_bs10_512_adam_lr1e-3_coco_x140.yam参数注释)

平时再跑一些深度学习 项目的时候,coco数据怎么进行处理数据的是必须得看的,
但是有一些参数不是很懂什么意思,因此本文就是解释这些参数的。




AUTO_RESUME: True   #自动恢复
DATA_DIR: ''        #数据文件夹
GPUS: (0,)          #GPU数量
LOG_DIR: log    #log是日志文件,通常是系统或者某些软件对已完成的某种处理的记录,以便将来做为参考
OUTPUT_DIR: output  #监测信息的输出文件目录
PRINT_FREQ: 100     #表示100轮打印一次参数
VERBOSE: False      #verbose表示详细信息,verbose=FALSE,意思就是设置运行的时候不显示详细信息
CUDNN:
  BENCHMARK: True
  DETERMINISTIC: False
  ENABLED: True
#    在很多情况下,设置这个参数能让内置的 cuDNN 的 auto-tuner 自动寻找最适合当前配置的高效算法,以此达到优化运行效率的问题。
通常来说会遵循以下准则:
    如果网络的输入数据维度或类型上变化不明显,设置 torch.backends.cudnn.benchmark = true
可以增加运行效率;
    如果网络的输入数据在每次 iteration 都发生变化,会导致 cnDNN 每次都会去寻找一遍最优配置,这样反而会降低运行效率。
    cuDNN使用非确定性算法,并且可以使用torch.backends.cudnn.enabled = False来进行禁用。如果设置为torch.backends.cudnn.enabled =True,说明设置为使用非确定性算法。
    所以我们经常看见在代码开始出两者同时设置:

DATASET:
  DATASET: coco_kpt  #coco关键点检测的数据集
  DATASET_TEST: coco   #测试集也是coco
  DATA_FORMAT: zip     #数据格式是zip(不用解压也行)
  FLIP: 0.5            #翻转(数据增强的一种方式)
  INPUT_SIZE: 512      #输入尺寸
  OUTPUT_SIZE: 128     #输出尺寸
  MAX_NUM_PEOPLE: 30   #最大人数
  MAX_ROTATION: 30     #图片最大的旋转角度
  MAX_SCALE: 1.5       #该方法将每个特征放缩到给定范围内(默认范围0-1)
  SCALE_TYPE: 'short'  #缩放类型
  MAX_TRANSLATE: 40    #最大_平移,数据增强方式之一
  MIN_SCALE: 0.75      #与上述MAX_SCALE相对应
  NUM_JOINTS: 17       #关键点数量
  ROOT: 'data/coco'    #根目录
  TEST: val2017        #测试集
  TRAIN: train2017     #训练集
  OFFSET_RADIUS: 4     #偏移_半径
  SIGMA: 2.0           #方差
  CENTER_SIGMA: 4.0    #中心处的方差
  BG_WEIGHT: 0.1       #计算损失时每个反例样本的权值,正例样本权值全为1
LOSS:
  WITH_HEATMAPS_LOSS: True #热图损失函数
  HEATMAPS_LOSS_FACTOR: 1.0  #热图损失因数
  WITH_OFFSETS_LOSS: True    #偏移损失
  OFFSETS_LOSS_FACTOR: 0.03   #偏移损失因数
MODEL:
  SPEC:
    FINAL_CONV_KERNEL: 1     #最终的卷积核
    PRETRAINED_LAYERS: ['*']  #预训练层
    STAGES:
      NUM_STAGES: 3     #阶段数
      NUM_MODULES:      #模块数
      - 1
      - 4
      - 3
      NUM_BRANCHES:     #分支数
      - 2
      - 3
      - 4
      BLOCK:            #三个残差块(BasicBlock)          
      - BASIC
      - BASIC
      - BASIC
      NUM_BLOCKS:       #BLOCK的数量
      - [4, 4]
      - [4, 4, 4]
      - [4, 4, 4, 4]
      NUM_CHANNELS:     #通道数量
      - [32, 64]
      - [32, 64, 128]
      - [32, 64, 128, 256]
      FUSE_METHOD:      #融合方法为相加
      - SUM
      - SUM
      - SUM
    HEAD_HEATMAP:       #头部热图,残差模块为1,通道数为32,扩展率为1
      BLOCK: BASIC
      NUM_BLOCKS: 1
      NUM_CHANNELS: 32
      DILATION_RATE: 1
    HEAD_OFFSET:        #头部偏移,分块自适应模块,模块数量,扩张率为1
      BLOCK: ADAPTIVE
      NUM_BLOCKS: 2
      NUM_CHANNELS_PERKPT: 15  
      DILATION_RATE: 1
  INIT_WEIGHTS: True   #这是一个函数,
import torch.nn as nn


def init_weights(model):
    # kaiming高斯初始化,使得每一卷积层的输出的方差都为1
    # torch.nn.init.kaiming_normal_(tensor, a=0, mode='fan_in', nonlinearity='leaky_relu')
    # a :Relu函数的负半轴斜率
    # mode:表示让前向传播还是反向传播的输出方差为1
    for m in model.modules():
        if isinstance(m, nn.Conv2d):
            nn.init.kaiming_normal_(m.weight.data,
                                    mode='fan_out',
                                    nonlinearity='relu')
        elif isinstance(m, nn.BatchNorm2d):
            # Batchnorm层一共有两个需要学习的参数:
                # scale因子,初始化为1,shift因子,初始化为0
            m.weight.data.fill_(1)
            m.bias.data.zero_()

  NAME: hrnet_dekr   
  NUM_JOINTS: 17    #关键点数
  PRETRAINED: 'model/imagenet/hrnet_w32-36af842e.pth'  #预训练采用的模型
TEST:
  FLIP_TEST: True  #翻转测试
  IMAGES_PER_GPU: 1   #根据自己的情况选择GPU数
  MODEL_FILE: '' 
  SCALE_FACTOR: [1]   #比例因子
  NMS_THRE: 0.05
  NMS_NUM_THRE: 8
  KEYPOINT_THRESHOLD: 0.01   #关键点_阈值
  ADJUST_THRESHOLD: 0.05     #调整阈值
  MAX_ABSORB_DISTANCE: 75    #最大吸收距离
  GUASSIAN_KERNEL: 6         #高斯核数
  DECREASE: 0.9              #减少
RESCORE:
  VALID: True        #Valid 用于验证注解是否符合要求,直接加在变量user之前
  MODEL_FILE: 'model/rescore/final_rescore_coco_kpt.pth' #模型文件
TRAIN:
  BEGIN_EPOCH: 0     #开始时期
  CHECKPOINT: ''     #保存更新参数
  END_EPOCH: 140     #结束时期
  GAMMA1: 0.99       #伽玛1
  GAMMA2: 0.0        #伽玛2
  IMAGES_PER_GPU: 10  #GPU数量
  LR: 0.001           #初始学习率为0.001,学习率LR控制了参数更新的速度,及模型学习的速度。
  LR_FACTOR: 0.1       #LR _因子
  LR_STEP: [90, 120]   #学习率变化扩大,没迭代到一个lr_step值,学习率下降到原来的0.1
  MOMENTUM: 0.9  #Momentum(动量)优化算法是对梯度下降法的一种优化, 它在原理上模拟了物理学中的动量,已成为目前非常流行的深度学习优化算法之一。
  NESTEROV: False   
#1.Nesterov是Momentum的变种。

2.与Momentum唯一区别就是,计算梯度的不同,Nesterov先用当前的速度v更新一遍参数,在用更新的临时参数计算梯度。

3.相当于添加了矫正因子的Momentum。

4.在GD下,Nesterov将误差收敛从O(1/k),改进到O(1/k^2)

5.然而在SGD下,Nesterov并没有任何改进

  OPTIMIZER: adam   #优化器为adam
  RESUME: False     #恢复线程
  SHUFFLE: True     #shuffle()方法将序列的所有元素随机排列语法
  WD: 0.0001        #L1,L2正则化的参数,也就是很多深度学习框架里面的wd参数,一般默认是0.0001,调整正则化的参数可以根据模型表现来,过拟合的时候可以适当加大系数,非过拟合的时候可不调这个参数,毕竟跑一次模型得花不少时间。
WORKERS: 4          #工作数量





如果有哪些不对的或者有补充的,欢迎私信。

       在跑深度学习项目的时候,我们通常会选择主要的三点,分别是:1、网络结构。2、数据集处理(本文就是关于数据集处理的一些参数注释讲解,这里我用的是coco数据集,仅供参考)。3、train.py训练文件。

        以上是对一些参数进行注释和讲解,如果有那些不对的或者有补充的,欢迎私信。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值