如何做一个简单的深度集成学习框架

使用同一个框架,独立在一个数据集上面,分别训练多次,每个单独模型训练超参数可以一样,也可以不一样,最后若干个训练好的独立模型在测试集数据上面做最后集中决策。

实例代码如下:

class MyEnsemble(nn.Module):def __init__(self, modelA, modelB, nb_classes=10):super(MyEnsemble, self).__init__()self.modelA = modelAself.modelB = modelB# Remove last linear layerself.modelA.fc = nn.Identity()self.modelB.fc = nn.Identity()# Create new classifierself.classifier = nn.Linear(2048+512, nb_classes)def forward(self, x):x1 = self.modelA(x.clone())  # clone to make sure x is not changed by inplace methodsx1 = x1.view(x1.size(0), -1)x2 = self.modelB(x)x2 = x2.view(x2.size(0), -1)x = torch.cat((x1, x2), dim=1)x = self.classifier(F.relu(x))return x# Train your separate models
# ...
# We use pretrained torchvision models here
modelA = models.resnet50(pretrained=True)
modelB = models.resnet18(pretrained=True)# Freeze these models
for param in modelA.parameters():param.requires_grad_(False)for param in modelB.parameters():param.requires_grad_(False)# Create ensemble model
model = MyEnsemble(modelA, modelB)
x = torch.randn(1, 3, 224, 224)
output = model(x)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/211270.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux通过串口传输文件

简介 在嵌入式调试过程中,我们经常会使用调试串口来查看Log或者执行指令,其实,调试串口还有另一种功能,就是传输文件,本文说明使用MobaXterm串口工具来传输文件。 环境要求 嵌入式系统需要安装lsz和lrz,…

【Java】定时器的简单应用

在写代码的过程中,如果我们遇到了隔一段时间就要进行一项任务时,采用定时器会提高我们的效率。下面对定时器的使用进行简单说明 1、应用说明 首先我们要创建一个Timer类 Timer timer new Timer(); 然后在timer中调用schedule()方法添加任务 timer.…

将对象转成URL参数

背景 有的时候前端跳转到其他平台的页面需要携带额外的参数,需要将对象转成用 & 连接的字符串拼接在路径后面。 实现方法

Rust语言入门教程(二) - 变量与作用域

变量与作用域 变量的声明与初始化 Rust的基本语法格式如下: fn main(){let bunnies 2; }语句以分号结尾,用花括号包含语句块。 Rust的语法其实借鉴了很多其他的语言,比如C语言和Python, 所以变量定义的格式看起来也跟很多我们…

Elasticsearch:ES|QL 函数及操作符

如果你对 ES|QL 还不是很熟悉的话,请阅读之前的文章 “Elasticsearch:ES|QL 查询语言简介​​​​​​​”。ES|QL 提供了一整套用于处理数据的函数和运算符。 功能分为以下几类: 目录 ES|QL 聚合函数 AVG COUNT COUNT_DISTINCT 计数为近…

自定义字符-摄氏度汉字一

本文为博主 日月同辉,与我共生,csdn原创首发。希望看完后能对你有所帮助,不足之处请指正!一起交流学习,共同进步! > 发布人:日月同辉,与我共生_单片机-CSDN博客 > 欢迎你为独创博主日月同…

Unity UGUI的HorizontalLayoutGroup(水平布局)组件

Horizontal Layout Group | Unity UI | 1.0.0 1. 什么是HorizontalLayoutGroup组件? HorizontalLayoutGroup是Unity UGUI中的一种布局组件,用于在水平方向上对子物体进行排列和布局。它可以根据一定的规则自动调整子物体的位置和大小,使它…

Python基础:生成器(Generators)和生成器表达式(Generator Expressions)详解

生成器(Generators)和 生成器表达式(Generator Expressions)是 Python 中用于处理迭代器和序列数据的强大工具。它们允许你按需生成值,而不是一次性生成所有值,从而节省内存和提高性能。 1. 生成器&#x…

实现自动化构建与集成:Jenkins与SVN整合的指南

Jenkins整合SVN 前言(非必须):配置Jenkins的CSRF1、新建任务2、 配置SVN3、配置Maven:进行编译打包4.1、发布到WEB容器(第一种:将项目放在webapps下)4.2、发布到WEB容器(第二种:将项目名称修改为…

文心一言 VS 讯飞星火 VS chatgpt (141)-- 算法导论12.1 1题

一、用go语言,对于关键字集合(1,4,5,10,16,17,21),分别画出高度为 2、3、4、5和6的二又搜索树。 文心一言: 以下是用Go语言为给定的关键字集合(1, 4, 5, 10, 16, 17, 2…

VR云游:让旅游产业插上数字化翅膀,打造地方名片

自多地入冬降温以来,泡温泉成了许多人周末度假的选择,在气温持续走低的趋势下,温泉游也迎来了旺季;但是依旧有些地区温度依旧温暖,例如南京的梧桐美景也吸引了不少游客前去打卡,大家穿着汉服与金黄的树叶合…

openGL之纹理 :第二课

#include "glew.h" #include "glfw3.h" #include "SOIL2.h"//如何解析输入的数据流 0,1,2 分三部分 GLchar * vertextSrc " #version 330 core \n \layout (location 0) in vec3 position; \layout (location 1) in vec3 col…