首页 > 其他分享 >timm 库学习总结

timm 库学习总结

时间:2024-11-08 12:14:55浏览次数:3  
标签:总结 训练 模型 学习 fastai 集上 官网 timm

timm库是聚合了各种SOTA图像分类模型的python库,里面有上千种模型,大部分模型还提供了在ImageNet数据集上预训练的权重。典型的如Resnet系列、Inception系列、ConvNeXt系列,以及基于ViT的模型。

timm库支持的模型名称可通过内置的查询函数timm.list_models查看,各种模型性能评估排名在官网的Results章节中。模型通过 timm.create_model函数去创建,如果是从预训练权重加载模型,首次调用会自动从huggingface hub下载权重文件。

timm库的官网在两个地方,里面的内容侧重不同:

1.GitHub:https://github.com/huggingface/pytorch-image-models

这里有最全面的timm文档索引和最新模型更新动态,在熟练掌握了timm的使用方法后,适合定期关注此网页。它的Results章节中有非常全面的模型性能评估排名,包括了IN-1k Top1得分、模型参数量、模型图片分辨率等等细节。

2.HuggingFace:https://huggingface.co/docs/timm/index

这里包含了新手教程和参考文档,也有主要的模型家族说明,但关于模型本身的文档不是最新的,最新引入的模型说明在GitHub官网。这里的页面结构清晰全面,教程也写得很清楚,适合在这里全面学习。

timm库提供的主要功能包括:

  1. 模型仓库,并提供在ImageNet上预训练的权重。一般是在IN-22k数据集上预训练,在IN-1K数据集上微调。
  2. 定制修改模型,例如修改模型最后一层的结构,以适应定制化的图片分类需求。
  3. 训练/验证/推理脚本,在本地重新训练或者微调模型,直接运行脚本,无需编写代码。
  4. 优化器,各种常用优化器。
  5. 调度器,各种常用调度器。
  6. 数据增强,例如Mixup和CutMix

从官网的示例代码和脚本看,timm库有两种用法:

  1. 直接使用官方训练脚本,在自定义的数据集上训练或微调模型。训练脚本可指定调度器、学习率、数据增强方式等各种参数,无需编写pyhon程序。
  2. 编写python代码,从timm库创建模型,使用它的优化器、调度器、数据增强函数等,核心的训练循环需要自己编写代码。

总结:在图片分类模型训练上,和fastai.vision相比,timm库更底层,基于python库添加了预定义和预训练的模型,以及部分优化器、调度器、数据增强函数。而fastai封装了更高层的训练框架,和timm库集成也很好,可以在fastai中直接使用timm的模型库,故在图像分类任务上,基于fastai库开展工作更加便利。

标签:总结,训练,模型,学习,fastai,集上,官网,timm
From: https://blog.csdn.net/speedlike/article/details/143622001

相关文章

  • 大模型(LLMs)学习笔记——进阶知识
    一.生成式大模型简介1.什么是生成式大模型前排提示,文末有大模型AGI-CSDN独家资料包哦!生成式大模型(一般简称大模型LLMs)是指能用于创作新内容,例如文本、图片、音频以及视频的一类深度学习模型。相比普通深度学习模型,主要有两点不同:模型参数量更大,参数量都在Billion......
  • 大模型(LLMs)学习笔记——基础知识
    一.大模型介绍1.目前主流的开源模型体系有哪些?前排提示,文末有大模型AGI-CSDN独家资料包哦!(1)CausalDecoder(因果解码器)介绍:从左到右的单项注意力代表模型:ChatGPT、LLaMA-7B、LLaMa系列。(2)PrefixDecoder(前缀解码器)介绍:输入双向注意力,输出单向注意力代表模型:ChatGLM、......
  • 11.8 javaweb学习 day1 入门
    网页响应流程浏览器前端服务器后端服务器数据库1.浏览器请求前端2.前端响应浏览器3.浏览器请求后端4.后端请求数据库5.数据库响应后端6.后端响应浏览器网页的组成1.网页的文字,图片,音频,视频,超链接什么的,本质是前端代码2.前端代码通过浏览器的转化......
  • 【机器学习】机器学习中用到的高等数学知识-3.微积分 (Calculus)
    3.微积分(Calculus)导数和梯度:用于优化算法(如梯度下降)中计算损失函数的最小值。偏导数:在多变量函数中优化目标函数。链式法则:在反向传播算法中用于计算神经网络的梯度。导数和梯度:用于优化算法(如梯度下降)中计算损失函数的最小值。导数和梯度是微积分中非常重要的概念,尤其......
  • 人工智能学习记录--Auto ML
    1.什么是AutoML?AutoML(自动化机器学习)是一种技术方法,旨在将机器学习的流程自动化,包括特征工程、模型选择、超参数优化等步骤。它通过简化机器学习过程,使得非专业人员或数据科学团队能更快、更便捷地构建并优化机器学习模型,特别适合于模型快速部署和大规模应用。2.AutoML的核......
  • 大A总结
    2024-11-08市场再次挖坑昨天的行情,指数大涨,但是个股涨得不多.昨天的消息,美联储间隙25个点,地产行情回暖消息满天飞,市场一片欣欣向荣的感觉.这种情况,虽然表面很繁荣,但是隐隐藏着诡异.今天开盘,和10月8日的行情很像,高开低走.昨天信达地产大涨,虽然最终涨停,......
  • 计算机毕业设计Python+图神经网络考研院校推荐系统 考研分数线预测 考研推荐系统 考研
    温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO......
  • DearPyGui学习
    接上一篇环境配置1.所有DPG应用程序必须做3件事:创建和销毁上下文(create_context)创建和显示视区(create_viewport、show_viewport)设置和启动DearPyGui(start_dearpygui)#基本顺序dpg.create_context()dpg.create_viewport()dpg.setup_dearpygui()dpg.show_viewport......
  • 基于springboot+vue.js+uniapp小程序的计算机学习系统附带文章源码部署视频讲解等
    文章目录前言详细视频演示具体实现截图核心技术介绍后端框架SpringBoot前端框架Vue持久层框架MyBaits为什么选择我代码参考数据库参考测试用例参考源码获取前言......
  • 数据结构学习笔记---线性表:顺序表(插入)
    顺序表的基本操作——插入首先,静态分配一个顺序表#include<stdio.h>#include<stdlib.h>#defineMaxSize5//定义队列的最大长度typedefstruct{ intdata[MaxSize]; intlength;}SqList;然后实现插入方法,for循环我们提前插入了四个元素,顺序排放原理是以i为......