首页 > 技术文章 > Datawhale 学CV--task 5模型集成

haiyanli 2020-06-02 02:51 原文

记录几个关于模型集成的问题:

1、validate set的留出法(还有k-折交叉验证)

【常见的集成学习方法有Stacking、Bagging和Boosting,同时这些集成学习方法与具体验证集划分联系紧密。】

原来常说的集成学习,跟验证集划分相关,以前常看到集成,但不知道是怎么做,以为是多个模型test结果的处理。

2、dropout也是集成的一种。

以前以为只有在FC层后,因为参数比较多,现在知道还有conv的后面,具体是在激活层后面,pooling层前面。例如

nn.Conv2d(3, 64, kernel_size=(3, 3), stride=(2, 2)),
nn.ReLU(),
nn.Dropout(0.2),
nn.MaxPool2d(2),

3、TTA是测试时用的集成方法,虽然代码里有TTA,但是还设里一个False的flag,所以实际是没有用TTA?

但也提醒注意:

  • 集成学习只能在一定程度上提高精度,并需要耗费较大的训练时间,因此建议先使用提高单个模型的精度,再考虑集成学习过程;
  • 具体的集成学习方法需要与验证集划分方法结合,Dropout和TTA在所有场景有可以起作用

4、变换Lr。固定Lr的方法是在优化器里指定;如果通过看loss曲线,确定Lr修改的epoch,可以写一个判断语句,修改Lr变量。

还有一个StepLr,暂时不会用。

 

推荐阅读