利用pytorch实现图像分类
前言
刚刚接触图像,做了简单的图像分类,下面一一会有说明,希望能给到大家帮助,其中会借鉴其他大佬博客,有的可能忘记标记引用,如看到,可以联系本人,进行及时更改。
使用的resnext、efficientnet等图像分类网络
参考的git原文:https://github.com/lxztju/pytorch_classification
本文的git地址:https://github.com/yanyide123/picture_classification_pytorch
实现功能
- 基础功能利用pytorch实现图像分类
- 包含带有warmup的cosine学习率调整
- warmup的step学习率优调整
- 添加label smooth的pytorch实现(标签平滑)
- 可视化特征层
运行环境
- python3.7
- torch 1.9.0+cu111
- torchvision 0.10.0+cu111
模型介绍
仓库中模型mobilenet,resnext模型来自于torchvision
efficientnet来自于 https://github.com/lukemelas/EfficientNet-PyTorch
预测结果
预测结果是将图片的路径和lable存入到result中,存放的形式路径+标签
move_result.py是将result结果的.csv文件存储的图片路径根据分出类别进行创建新的文件夹将分类好的结果移动到对应标签里面
图片:
其他文件介绍
picture_show.ipynb:查看数据集中的图片,每一个类别展示5张照片
画图
两种作图的介绍:
下面来介绍一下TSNE和UMAP的差别,首先,在高维空间内,描述两个点(两个张量)的距离不一样,tSNE采取的是“概率算法”,即把两个点的距离转换成概率,若 i 与 j 这两个点距离比较近的话,它所对应的概率较大;而UMAP采取的是传统的欧式距离。
在做图像分类结果进行展示,两种方式作图提取的特征都是使用的resnet做的特征提取,区别点就是在于两者的降为和点雨点之间的比较的差异。
更多详细资料参考:
https://blog.csdn.net/weixin_33295562/article/details/113029121?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_ecpm_v1~rank_v31_ecpm-1-113029121.pc_agg_new_rank&utm_term=UMAP
TSNE作图
1.在draw_image文件夹中TSNE_draw,直接运行tsne.py,相关联的程序petrolem_dataset.py(这里设置对应分类类别的颜色,按照自己的标签进行设置),resnet.py对应做图片映射使用的网络,这里使用的resNet101网络。
借鉴文献:https://learnopencv.com/t-sne-for-feature-visualization/
分类的结果图片展示:
UMAP作图
1.在draw_image文件夹中UMAP_draw,直接运行umap_show.ipynb,相关联的程序petrolem_dataset.py,resnet.py对应做图片映射使用的网络,这里使用的resNet101网络。
下面是umap的效果:
参考文献
https://github.com/lxztju/pytorch_classification
https://learnopencv.com/t-sne-for-feature-visualization/
https://umap-learn.readthedocs.io/en/latest/basic_usage.html
利用pytorch实现图像分类相关推荐
- 利用Pytorch搭建简单的图像分类模型(之二)---搭建网络
Pytorch搭建网络模型-ResNet 一.ResNet的两个结构 首先来看一下ResNet和一般卷积网络结构上的差异: 图中上面一部分就是ResNet34的网络结构图,下面可以理解为一个含有34层 ...
- CUDA:利用Pytorch查看自己电脑上CUDA版本及其相关信息
CUDA:利用Pytorch查看自己电脑上CUDA版本及其相关信息 目录 利用Pytorch查看自己电脑上CUDA的版本信息
- PyTorch之LeNet-5:利用PyTorch实现最经典的LeNet-5卷积神经网络对手写数字图片识别CNN
PyTorch之LeNet-5:利用PyTorch实现最经典的LeNet-5卷积神经网络对手写数字图片识别CNN 目录 训练过程 代码设计 训练过程 代码设计 #PyTorch:利用PyTorch实现 ...
- PyTorch:采用sklearn 工具生成这样的合成数据集+利用PyTorch实现简单合成数据集上的线性回归进行数据分析
PyTorch:采用sklearn 工具生成这样的合成数据集+利用PyTorch实现简单合成数据集上的线性回归进行数据分析 目录 输出结果 核心代码 输出结果 核心代码 #PyTorch:采用skle ...
- 【项目实战课】人人免费可学!基于Pytorch的图像分类简单任务数据增强实战
欢迎大家来到我们的项目实战课,本期内容是<基于Pytorch的图像分类简单任务数据增强实战>.所谓项目实战课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个主题,进行代码级的 ...
- 深度学习练手项目(二)-----利用PyTorch进行线性回归
前言 深度学习并没有想象的那么难,甚至比有些传统的机器学习更简单.所用到的数学知识也不需要特别的高深.这篇文章将利用PyTorch来实现线性回归这个经典的模型. 一.线性回归理论 线性回归时利用数理统 ...
- 利用Pytorch的C++前端(libtorch)读取预训练权重并进行预测
本篇使用的平台为Ubuntu,Windows平台的请看Pytorch的C++端(libtorch)在Windows中的使用 前言 距离发布Pytorch-1.0-Preview版的发布已经有两个多月, ...
- 基于pytorch实现图像分类——理解自动求导、计算图、静态图、动态图、pytorch入门
1. pytorch入门 什么是PYTORCH? 这是一个基于Python的科学计算软件包,针对两组受众: 替代NumPy以使用GPU的功能 提供最大灵活性和速度的深度学习研究平台 1.1 开发环境 ...
- 利用Pytorch实现ResNeXt网络
目 录 1 ResNeXt网络介绍 1.1 组卷积 1.2 block 1.3 网络搭建 2 利用Pytorch实现ResNet网络 2.1 模型定义 2.2 训练结果 1 ResNeXt网络介绍 ...
- 【Pytorch】利用Pytorch+GRU实现情感分类(附源码)
在这个实验中,数据的预处理过程以及网络的初始化及模型的训练等过程同前文<利用Pytorch+LSTM实现中文新闻分类>,具体这里就不再重复解释了.如果有读者在对数据集的预处理过程中有疑问, ...
最新文章
- 全美第二的机器人项目核心数学课免费开放,院长亲自授课,作业讲义全同步...
- 云开发如何帮助业务扛过大流量活动洪峰丨深度好文
- Python:Matplotlib 画曲线和柱状图(Code)
- osg 三维gis开发_三维GIS平台的可视化应用 (下)
- 微信公众平台无法使用支付宝收付款的解决方案
- LeetCode LCP 34. 二叉树染色(树上DP)
- Eclipse配置自动补齐键为alt+/
- 数据库设计原则与开发规范,你知道多少?
- C++算法学习(力扣:面试题 16.04. 井字游戏)
- 苏宁数据中台架构实践,高清技术版
- 在排序数组中查找数字
- centos6.5系统执行mv /* /path,只能用cd命令,如何恢复
- JAVA WEB 复习资料
- Python实现商场管理系统
- 关于计算机论文摘要和引言,论文摘要和背景的区别_论文前言与摘要的区别_引言和摘要有什么区别...
- 我原以为我不会伤心......
- 花了三个月终于把所有的Python库全部整理了!祝你早日拿到高薪!
- stm32f103VCT6全新机器 做stm32开发板 原理图以及主要器件规格书
- 以大数据重塑K12在线教育
- python计算机语言基础_PYTHON之计算机语言基础知识 —— 编程语言的分类
热门文章
- Bootstrap学习(五)navbar、nav、media、panel、list-group
- win10运行python没有硬编码器_windows下关于python的编解码问题
- 大数据毕设/课设 - 基于大数据的公司业务监控大数据平台设计与实现
- html radio 更换图片,CSS 点击radio实现两个图片样式切换并且多个radio中只能有一个checked...
- bind服务12---分离解析
- 怎么用服务器多开手机系统版本,云服务器安卓多开
- iphone的照片如何同步到mac
- 光明顶短信支付:BASE64编码
- linux -----各种颜色代表什么
- 学了这么久的编程,编程语言创始人你知道几个?