【计算机视觉】一个简单易上手的图像分类任务pipeline代码
整理了一个针对图像分类任务的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代码相关推荐
- 简单绘图软件实现mfc大作业_生产流程图怎么做?简单易上手的流程图工具
生产流程图是什么呢?首先,生产流程指的是在生产的过程中,劳动者通过利用一定的生产设备或工具,将各种原材料.半成品投入,按照一定顺序进行加工,最终得到成品产出的整个过程.而生产流程图则是使用图表符号的形 ...
- 本行没有输入值结余隐藏_仓库库存管理系统,内含逻辑公式,自动结余库存!操作简单易上手...
仓库库存管理系统,内含逻辑公式,自动结余库存!操作简单易上手 仓库出入库管理系统 入库单 出入库单号自动生成,如需修改前缀,可根据提示自行修改.在设置中,根据实际情况对必须填写的项输入,方便后期可自动 ...
- 一款简单易上手的ARM单片机开发IDE—STduino
一款简单易上手的ARM单片机开发IDE-STduino 前言 STduino介绍 前言 第一眼看到这个IDE,第一反应就是名字有点像TrueSTUDIO,然后我上网查了一下,当然是没有关系的,只能说是 ...
- focusky怎么制作html5,一款简单易上手的3D动态PPT制作软件Focusky
原标题:一款简单易上手的3D动态PPT制作软件Focusky Focusky动画演示大师 是一款傻瓜式的动画宣传片.微课.3D 动态 PPT 制作工具.通过缩放动作,让演示文档变成生动有趣的动画,制作 ...
- java通讯框架_gim: 一个简单易用,稳定高效的及时通讯框架(java、android)
gim 一个简单易用,稳定高效的及时通讯框架(java) 简介: gim是基于高性能网络框架getty封装的,能简单上手,稳定高效的及时通讯框架 Getty:[https://github.com/g ...
- idea log 不输出error_还在使用console.log()吗?Bunyan:一个简单易用的JS日志框架
Bunyan是一个简单易用的JS日志框架,可以工作在多种环境下,这里以Nodejs为例说明Bunyan的基本用法.是时候替换console.log的写法了. 安装 npm install --save ...
- 基于ForkJoin构建一个简单易用的并发组件
2019独角兽企业重金招聘Python工程师标准>>> 基于ForkJoin构建一个简单易用的并发组件 在实际的业务开发中,需要用到并发编程的知识,实际使用线程池来异步执行任务的场景 ...
- 弥散阴影html,超赞!一份简单易上手的青春弥散阴影修炼手册
@笔戈科技 :一份简单易上手的青春弥散阴影修炼手册!九张长图/3种方法/3种效果/4个技巧,包你学会设计时下流行的骚气通透的弥散阴影效果. 投影法较为简单粗暴,但是投影效果较为粗糙缺乏立体感,投影颜色 ...
- 开发一个简单易用的SDK的详细步骤(超详细,超适用)
文章目录 开发一个简单易用的SDK的详细步骤 创建starter步骤 关键点 总结 开发一个简单易用的SDK的详细步骤 创建starter步骤 1.新建一个 spring boot 初始化项目 2.添 ...
最新文章
- 如何利用 C# 爬取Gate.io交易所的公告!
- java ast 添加注解_基于AST的组件化自动插桩方案
- NXT(未来币)(阿朵)节点钱包
- Uva 11464 偶数矩阵
- 【实习】今日头条【抖音火山】后台开发实习生
- Should i Backup all my domain controllers
- 说一下 JVM 的主要组成部分?及其作用?
- [链表]---链表相邻元素翻转
- 利用多线程实现linux下C语言的聊天室程序:
- java正则获取数字_Java通过正则表达式获取字符串中数字的方法示例
- 记录自己的gitlab搭建之旅
- Python numpy学习笔记(一)
- win10美化--打造专属我的windows
- java调用chrome内核_selenium中如何测试360等基于chrome内核的浏览器
- android 远程控制工具,安卓版远程协助软件
- php做文章伪原创,php简单的伪原创程序
- 寄昙说 剑子仙迹 天之佛
- 【精】聊聊HDFS的高可用架构
- Windows下批量删除空文件夹
- py-fater-rcnn中config.py參數的調整