zoukankan      html  css  js  c++  java
  • Datawhale 学CV--task 5模型集成

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

    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,暂时不会用。

  • 相关阅读:
    sql中添加唯一索引(非主键)
    Ubuntu 安装 LAMP 主机之后运行出现乱码
    编写安全 PHP 应用程序的七个习惯
    首先在服务器上安装ssh的服务器端
    php安全简析
    正确的Linux菱形乱码修改方法
    php安全
    变量作用域
    bind9 详细解析
    DNS和DHCP服务器
  • 原文地址:https://www.cnblogs.com/haiyanli/p/13028933.html
Copyright © 2011-2022 走看看