比torchvision更强大,从timm库引用预训练模型和本地加载的方法

1,介绍

torchvision是大家最常用的预训练模型来源,但是其包含的预训练模型种类很少,往往并不能满足研究者们的需求。

而timm库提供了一个更强大的替代选项。

利用如下代码查询

import timm

print(len(timm.list_models()))

输出

1032

可知,timm内置了1032个预训练模型权重。

例如ghostnet、caformer、crossvit等模型都是不在torchvision内的。

2,利用timm创建带预训练权重的模型

model = timm.create_model('ghostnetv2_100.in1k', pretrained=True)

其中权重的名称可以到hugging face hub上查询。

https://huggingface.co/

比如说输入ghostnet,就会出现以下可选的权重,对应不同版本和超参数的ghostnet模型,选择自己需要的就可以。

3,不加载分类头,输出特征图

输出的卷积层特征

model = timm.create_model(
    'ghostnet_100.in1k',
    pretrained=True,
    features_only=True,
)

4,获取图像的嵌入

所谓图像嵌入,也就是不包含最后一层分类层,但是包含了之前的其他线性变换层

model = timm.create_model(
    'ghostnet_100.in1k',
    pretrained=True,
    num_classes=0,  # remove classifier nn.Linear
)

另一种等效的方式是:

在创建模型时不需要移除分类层,但是用forward_features()方法来获取图像嵌入。

model = timm.create_model('ghostnetv2_100.in1k', pretrained=True)

#获取的是(b, c, h, w)形状的tensor
output = model.forward_features(transforms(img).unsqueeze(0))

#获取的是(b,c x h x w)形状的tensor
output = model.forward_head(output, pre_logits=True)

forward_head方法一般来说返回的是最后一个分类层之前的输出,如果你的模型在分类头里包含了全局池化层,那么forward_head方法返回的就是分类层之前最后一个全局池化层的结果。

但是具体返回结果需要结合你使用的模型来确认。

5,使用预下载到本地的权重创建模型

由于某些众所周知的原因,timm的模型下载经常无法连接。所以,我们可以事先从hugging face hub上把模型权重文件下载到本地。然后用如下代码创建

model = timm.create_model('ghostnet_100.in1k', pretrained=True,pretrained_cfg_overlay=dict(file='D:/pytorch_model.bin'))

只需要把pretrained_cfg_overlay=dict(file='D:/pytorch_model.bin')中的路径替换成你自己保存模型的路径即可。

6,秒杀torchvision,对非三通道图像的神奇处理能力

如果是使用的是torchvision内的预训练模型来处理非三通道图像,那么会报错。只能通过将自己的数据集预处理,转换成三通道图才可以运行。

但是利用timm创建的模型可以直接输入非三通道图进行训练或者预测。

例如,单通道图

m = timm.create_model('resnet34', pretrained=True, in_chans=1)

或者25通道图

m = timm.create_model('resnet34', pretrained=True, in_chans=25)

我们只需要在创建模型时制定in_chans这个参数就可以了。

剩下的操作,timm都会自动帮你完成。其内部已经实现了对通道数的变换。

7,查看预训练模型的配置

from timm.models.resnet import default_cfgs

resnet34_default_cfg = default_cfgs['resnet34']

print(resnet34_default_cfg)

输出结果太长就不贴了,自行查看。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++】 vector <string> 的超详细解析!!!

目录 一、前言 二、 vector <string> 的个人理解和总结 三、vector <string> 的初始化 四、vector <string> 的输入 \ 输出 五、vector <string> 中的注意事项 六、常考面试题 七、共勉 一、前言 在【C】中&#xff0c;vector 是一个动态数组…

游戏开发各岗位的优势和劣势

在这个充满创意和技术的时代&#xff0c;游戏行业成为众多创新人才追求梦想的热土。对于那些准备踏入这个充满挑战与机遇的领域的新人来说&#xff0c;了解游戏开发的各个岗位及其独特性是至关重要的。游戏程序员、美术设计师和游戏策划——这三个核心岗位不仅构成了游戏创造的…

【SpringBoot整合系列】SpirngBoot整合EasyExcel

目录 背景需求发展 EasyExcel官网介绍优势常用注解 SpringBoot整合EaxyExcel1.引入依赖2.实体类定义实体类代码示例注解解释 3.自定义转换器转换器代码示例涉及的枚举类型 4.Excel工具类5.简单导出接口SQL 6.简单导入接口SQL 7.复杂的导出&#xff08;合并行、合并列&#xff0…

Maplesoft Maple 2024(数学科学计算)mac/win

Maplesoft Maple是一款强大的数学计算软件&#xff0c;提供了丰富的功能和工具&#xff0c;用于数学建模、符号计算、数据可视化等领域的数学分析和解决方案。 Mac版软件下载&#xff1a;Maplesoft Maple 2024 for mac激活版 WIn版软件下载&#xff1a;Maplesoft Maple 2024特别…

Kubernetes中pod的概念

pod pod是什么&#xff1a;pod是k8s中基本的构建模块&#xff0c;一个pod可以包含多个和单个容器&#xff0c;包含多个容器时&#xff0c;这些容器总是运行在同一个工作节点上&#xff0c;因为一个pod绝不会跨多个工作节点。 了解pod&#xff1a; pod将容器绑定在一起&#xf…

浅析扩散模型与图像生成【应用篇】(十五)——SDG

15. More Control for Free! Image Synthesis with Semantic Diffusion Guidance 该文提出一种基于语义引导扩散模型的的图像生成算法&#xff0c;SDG&#xff0c;可使用文本或图像作为引导来指引图像的生成&#xff0c;也可以二者同时使用&#xff0c;实现多模态的引导。增加引…

【Redis】Redis的类型及相关操作

一、常用的key操作命令 keys * 查看当前数据库的键值 ttl key 查看还有多少秒过期&#xff0c;-1表示永不过期&#xff0c;-2表示过期 del / unlink key 同样是删除&#xff0c;unlink是非阻塞删除&#xff0c;del则有可能导致阻塞 select dbindex 切换数据库 flushdb 清空…

微服务(基础篇-007-RabbitMQ部署指南)

目录 05-RabbitMQ快速入门--介绍和安装_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1LQ4y127n4?p65&vd_source60a35a11f813c6dff0b76089e5e138cc 1.单机部署 1.1.下载镜像 1.2.安装MQ 2.集群部署 2.1.集群分类 2.2.设置网络 视频地址&#xff1a; 05-Rab…

《养育男孩》:培养未来男子汉,养育男孩的全方位指南

粉丝福利&#xff1a;公众号内回复4可免费获取本期《养育男孩》的读书音频哦。 作为一名家长&#xff0c;我们深知在孩子成长过程中&#xff0c;尤其是男孩的成长过程中&#xff0c;父母的角色和责任有多么重大。最近阅读了心理学家史蒂夫比达尔夫所著的《养育男孩》一书&…

使用plasmo开发浏览器插件在网页指定位置添加自定义UI

使用plasmo开发浏览器插件的时候&#xff0c;有时候需要在指定网站的指定页面添加自定义的UI内容&#xff0c;如果通过content.js内容脚本去通过js创建的话&#xff0c;可就太麻烦了&#xff0c;要写不少的js代码。不过plasmo已经帮我们实现了这个功能&#xff0c;就是Content …

「51媒体网」媒体邀约现场采访的优势有哪些?

传媒如春雨&#xff0c;润物细无声的&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体邀约现场采访的优势主要表现在以下几个方面&#xff1a; 实时报道与传播&#xff1a;现场采访能够让媒体了解活动的真实性&#xff0c;此外&#xff0c;到场报道媒体可以实时迅速将…

谷粒商城实战(009 缓存-分布式锁)

Java项目《谷粒商城》架构师级Java项目实战&#xff0c;对标阿里P6-P7&#xff0c;全网最强 总时长 104:45:00 共408P 此文章包含第158p-第p165的内容 分布式锁 原理和使用 使用下shell对产生的命令进行发送 查看 -> 撰写 -> 撰写栏 idea 选中的代码提取成方法 加锁…

go优雅读取zip压缩包-进阶2

【前言】 看到这里就晓得了&#xff0c;之前那一一篇文章go优雅读取zip压缩包&#xff0c;依旧还是有些问题&#xff0c;接下来&#xff0c;我就开始描述下本文章讲述的内容&#xff1a; 面对需要多次读取多个zip压缩包里的指定文件内容&#xff0c;如何提升读取的速度&#x…

smart link实验配置

相关知识点&#xff1a;stp生成树协议&#xff0c;收敛时间慢会导致丢帧&#xff0c;所以利用samrt link配置 1.分主从端口&#xff0c;正常情况下主端口工作&#xff0c;从端口阻塞&#xff0c;防止回路&#xff0c;主端口出问题&#xff0c;切换从端口&#xff0c;并通过flu…

寒冬已逝,“量子春天”正来

最近&#xff0c;全球对量子技术领域的私人投资有所下降&#xff0c;引发了一些观点认为这个领域可能正逐渐衰退。 政治家、资助者和投资者并不总是以科学为关注焦点。然而&#xff0c;某些科技领域偶尔会成为热点&#xff0c;正如20世纪50年代核能技术的兴起&#xff0c;那时人…

分月饼 java题解

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in); int m sc.nextInt(); // 读取员工数量mint n sc.nextInt(); // 读取月饼数量n// 调用distribute方法并打印返回的分配方法总数//先默认每人分一个…

​慧天[HTWATER]可以与与SWMM模型之间实现转换吗?

​慧天[HTWATER]软件简介 针对城市排水系统基础设施数据管理的需求&#xff0c;以及水文、水力及水质模拟对数据的需求&#xff0c;实现了以数据库方式对相应数据的存储。可以对分流制排水系统及合流制排水系统进行地表水文、管网水力、水质过程的模拟计算。可以对城市低影响开…

echarts仪表盘特殊样式

const drawChartOption function (value, max) {const colorConfig {name: 测试,colorList: {text: #fff,line2: {type: linear,x: 0, // 右y: 0, // 下x2: 1, // 左y2: 0, // 上colorStops: [// {// offset: 0,// color: transparent// },{offset: 0.1,color: #031e…

TikTok防关联引流系统:全球多账号运营的终极解决方案

tiktok防关联引流系统介绍&#xff0c;tiktok防关联系统是基于tiktok生态研发的效率工具&#xff0c;帮你快速实现tiktok全球多账号运营&#xff0c;系统配备了性能强劲的安卓&#xff0c;防关联智能终端&#xff0c;可一建创建全球多国手机环境&#xff0c;完美满足各类app软件…

CX3324A是德科技CX3324A器件电流波形分析仪

181/2461/8938产品概述&#xff1a; 器件电流波形分析仪&#xff0c;1 GSa/s&#xff0c;14/16 位&#xff0c;4 通道 主机功能特性 为电流和差分传感器以及无源探头接口适配器提供 4 个模拟通道带宽选件&#xff1a;50 MHz、100 MHz、200 MHz存储器深度选件&#xff1a;4 M…