整理了一个针对图像分类任务的pipeline,主要用于快速开始验证现有模型结果,以及后续的自定义模型的开发。

https://github.com/jzsherlock4869/image-classification-pipeline

对于图像分类任务来说,主要可以分为【数据】、【网络结构】、【loss函数】以及【训练步骤】这几个方面,很多情况下,这些部分都较为独立,并且也都有比较常用的形式。因此,对这几个部分进行拆解,分别设置为不同文件夹,并对各个不同的结构以单独文件的形式进行分离,保证后续可以只用添加文件就可以实现自定义模型和训练。

对于数据部分,常规的分类数据集通常有两种格式:一种是:同类的图片放在一个子文件夹,不同子文件夹代表不同的类别,比如imagenet;另一种是:所有图片都放在一起,用一个csv文件标注每个image的对应的label。代码库实现了这两种标准格式,如果你的数据集是这种格式的话,可以直接改路径就可以运行。如果不是,那么可以自定义数据集。另外,数据的augmentation也可以按照已有的样例自定义。由于内部采用了动态引入模块的方案,因此,这些改动不需要再model里对应加判断,直接config的yml中指定文件名或者类名即可。

网络结构由于有了好用的timm模型库,因此预定义了一个直接调用timm的arch,可以快速验证各个模型。如果想要自定义自己的网络结构,参照这个arch的类来写即可。

在实验和研究过程中,很多时候修改模型和修改训练策略是可以解耦的,因此将常用的操作,比如训练一次,验证并计算metric,inference等功能都封装再model类型中。如果要用特殊的训练方法,可以修改model来实现。

目前还在完善中,如有错误或问题欢迎指出~ 后续可能需要加入一些已有的常规的augment方案,提点trick,各种不同的TTA等,欢迎关注&star~

【计算机视觉】一个简单易上手的图像分类任务pipeline代码相关推荐

  1. 简单绘图软件实现mfc大作业_生产流程图怎么做?简单易上手的流程图工具

    生产流程图是什么呢?首先,生产流程指的是在生产的过程中,劳动者通过利用一定的生产设备或工具,将各种原材料.半成品投入,按照一定顺序进行加工,最终得到成品产出的整个过程.而生产流程图则是使用图表符号的形 ...

  2. 本行没有输入值结余隐藏_仓库库存管理系统,内含逻辑公式,自动结余库存!操作简单易上手...

    仓库库存管理系统,内含逻辑公式,自动结余库存!操作简单易上手 仓库出入库管理系统 入库单 出入库单号自动生成,如需修改前缀,可根据提示自行修改.在设置中,根据实际情况对必须填写的项输入,方便后期可自动 ...

  3. 一款简单易上手的ARM单片机开发IDE—STduino

    一款简单易上手的ARM单片机开发IDE-STduino 前言 STduino介绍 前言 第一眼看到这个IDE,第一反应就是名字有点像TrueSTUDIO,然后我上网查了一下,当然是没有关系的,只能说是 ...

  4. focusky怎么制作html5,一款简单易上手的3D动态PPT制作软件Focusky

    原标题:一款简单易上手的3D动态PPT制作软件Focusky Focusky动画演示大师 是一款傻瓜式的动画宣传片.微课.3D 动态 PPT 制作工具.通过缩放动作,让演示文档变成生动有趣的动画,制作 ...

  5. java通讯框架_gim: 一个简单易用,稳定高效的及时通讯框架(java、android)

    gim 一个简单易用,稳定高效的及时通讯框架(java) 简介: gim是基于高性能网络框架getty封装的,能简单上手,稳定高效的及时通讯框架 Getty:[https://github.com/g ...

  6. idea log 不输出error_还在使用console.log()吗?Bunyan:一个简单易用的JS日志框架

    Bunyan是一个简单易用的JS日志框架,可以工作在多种环境下,这里以Nodejs为例说明Bunyan的基本用法.是时候替换console.log的写法了. 安装 npm install --save ...

  7. 基于ForkJoin构建一个简单易用的并发组件

    2019独角兽企业重金招聘Python工程师标准>>> 基于ForkJoin构建一个简单易用的并发组件 在实际的业务开发中,需要用到并发编程的知识,实际使用线程池来异步执行任务的场景 ...

  8. 弥散阴影html,超赞!一份简单易上手的青春弥散阴影修炼手册

    @笔戈科技 :一份简单易上手的青春弥散阴影修炼手册!九张长图/3种方法/3种效果/4个技巧,包你学会设计时下流行的骚气通透的弥散阴影效果. 投影法较为简单粗暴,但是投影效果较为粗糙缺乏立体感,投影颜色 ...

  9. 开发一个简单易用的SDK的详细步骤(超详细,超适用)

    文章目录 开发一个简单易用的SDK的详细步骤 创建starter步骤 关键点 总结 开发一个简单易用的SDK的详细步骤 创建starter步骤 1.新建一个 spring boot 初始化项目 2.添 ...

最新文章

  1. 如何利用 C# 爬取Gate.io交易所的公告!
  2. java ast 添加注解_基于AST的组件化自动插桩方案
  3. NXT(未来币)(阿朵)节点钱包
  4. Uva 11464 偶数矩阵
  5. 【实习】今日头条【抖音火山】后台开发实习生
  6. Should i Backup all my domain controllers
  7. 说一下 JVM 的主要组成部分?及其作用?
  8. [链表]---链表相邻元素翻转
  9. 利用多线程实现linux下C语言的聊天室程序:
  10. java正则获取数字_Java通过正则表达式获取字符串中数字的方法示例
  11. 记录自己的gitlab搭建之旅
  12. Python numpy学习笔记(一)
  13. win10美化--打造专属我的windows
  14. java调用chrome内核_selenium中如何测试360等基于chrome内核的浏览器
  15. android 远程控制工具,安卓版远程协助软件
  16. php做文章伪原创,php简单的伪原创程序
  17. 寄昙说 剑子仙迹 天之佛
  18. 【精】聊聊HDFS的高可用架构
  19. Windows下批量删除空文件夹
  20. py-fater-rcnn中config.py參數的調整

热门文章

  1. Python地理做图——学习笔记
  2. 计算机管理的服务打不开,win7系统管理服务打不开的解决方法
  3. c语言用循环函数求平方,用C语言程序三种循环语句分别编写程序,求1-100的平方值?...
  4. 计算机ppt培训心得体会,制作ppt学习心得体会
  5. 【毕业设计】深度学习水果识别系统 - python CNN
  6. html5动态加载图片和加载视频
  7. P1119 灾后重建(基础Floyd原理的理解和运用)
  8. 2020年东三省玉米种植分布数据
  9. 124-移动端游乐园项目
  10. 7-10 黑洞数(20 分)