【pytorch】简单的一个模型做cifar10 分类(四)-类似投票机制进行模型集成

本文介绍了如何使用Python中的`collections.Counter`进行模型集成,特别是在深度学习中处理CIFAR10分类任务时。文章强调了熟悉Python库的重要性,并提到在模型性能相近时,可以采取平均预测结果的方法进行集成。当模型性能差异较大时,建议使用加权平均,并提到了优化算法如SLSQP等来获取权重。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      题外话:这里还是得会用python用的6呀,谁说用深度学习不需要啥高深的python用法,简单就可以,其实还是要对python的各种库非常熟悉的。

        # print(arr[:, 0])  # [3 3 5]
        # print(Counter(arr[:, 0])) # Counter({3: 2, 5: 1})
        # print(Counter(arr[:, 0]).most_common(1))  # [(3, 2)]
        # print(Counter(arr[:, 0]).most_common(1)[0])  # (3, 2)
        # print(Counter(arr[:, 0]).most_common(1)[0][0]) # 3
        pre.clear()
        result = [Counter(arr[:, i]).most_common(1)[0][0] for i in range(BATCHSIZE)]

这里就是想介绍一下:

from collections import Counter计数器

看这里https://blog.youkuaiyun.com/ch_improve/article/details/893883891,2点挺好的,或者直接看python官方文档吧

     如果各个模型性能差不多,可以取各模型预测结果的平均值;如果模型性能相差较大,模型集成后的性能可能还不如一单个模型,相差较大时,可以采用加权平均的办法,其中权重可以采用SLSQP,Nelder-mead,Powell,CG,BFGS等优化算法获取。

epoch:97集成模型的正确率74.5
模型0的正确率为:70.66
模型1的正确率为:65.89
模型2的正确率为:69.75
epoch:98集成模型的正确率75.09
模型0的正确率为:71.65
模型1的正确率为:65.62
模型2的正确率为:68.66
epoch:99集成模型的正确率74.89
模型0的正确率为:71.5
模型1的正确率为:65.46
模型2的正确率为:69.57

接下来看一个模型集成的实例:

# -*- coding: utf-8 -*-

'''
@Time    : 2020/8/13 16:33
@Author  : HHNa
@FileName: integrate.py
@Software: PyCharm
 
'''
# step0 导入库及下载数据
import torch
import torchvision
import torchvision.transforms as transforms
import torch.utils.data as data

# Data
print('==>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值