基于 GhostNet 不同版本的图像识别

2024-06-05 04:12

本文主要是介绍基于 GhostNet 不同版本的图像识别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、介绍

GhostNet 文章地址:[1911.11907] GhostNet: More Features from Cheap Operations (arxiv.org)

主要思想:

特征提取的时候,很多特征图是具有高度相似性的,也就是说存在许多的冗余特征图。

从另一个角度想,利用一系列的线性变化,以很小的代价生成许多能从原始特征发掘所需信息的“幻影”特征图呢

冗余的特征图是非常有必要的,可以保证网络对输入数据的理解更为全面。

ghostnet 的版本,本人在github上搜到了三个版本,这里干脆一起实现了

文末有项目下载

2、代码解释

代码目录如下:

  • 红色框为ghostnet 的主干网络
  • 蓝色框为数据集,数据保存在不同目录中,如果有测试集的话,也放在这里即可
  • 绿色框为训练生成的结果

2.1 训练脚本 train

传入参数如下:

网络的输出个数,代码会计算数据集,然后自动设定!

都是很常规的参数,优化器可供选择的有SGD、Adam,学习率采用自适应衰减

2.2 评估脚本 val

这里评估的代码从训练中独立出来,参数如下:

  • pth 传入测试集。没有的话,传入验证集也可以
  • 数据集的mean和std在训练日志log文件中可以找到

2.3 训练过程和结果

运行train脚本如下:

评估脚本如下:这里采用的评估指标是混淆矩阵、F1分数等等

训练结果:

weights 下有最好的权重和最后的权重文件

训练和验证集的loss、acc曲线

注意:这里val 比 train 的acc高,因为数据划分不平衡所致,val集数量加多一点即可

学习率衰减:

训练日志:这里有mean和std

 

数据预处理的可视化:

 

3、使用

项目地址: 基于ghostNet网络对将香蕉5种不同阶段成熟度的分类【包含数据集+代码+训练结果】资源-CSDN文库

配置GPU的torch训练,参考:Pytorch 配置 GPU 环境_pytorch gpu-CSDN博客

新建虚拟环境:conda create -n ghost python=3.8

激活虚拟环境:conda activate ghost

安装库文件即可:pip install -r requirements.txt

训练自己数据集,将数据集摆放好即可

这篇关于基于 GhostNet 不同版本的图像识别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1032042

相关文章

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

你的华为手机升级了吗? 鸿蒙NEXT多连推5.0.123版本变化颇多

《你的华为手机升级了吗?鸿蒙NEXT多连推5.0.123版本变化颇多》现在的手机系统更新可不仅仅是修修补补那么简单了,华为手机的鸿蒙系统最近可是动作频频,给用户们带来了不少惊喜... 为了让用户的使用体验变得很好,华为手机不仅发布了一系列给力的新机,还在操作系统方面进行了疯狂的发力。尤其是近期,不仅鸿蒙O

什么是 Ubuntu LTS?Ubuntu LTS和普通版本区别对比

《什么是UbuntuLTS?UbuntuLTS和普通版本区别对比》UbuntuLTS是Ubuntu操作系统的一个特殊版本,旨在提供更长时间的支持和稳定性,与常规的Ubuntu版本相比,LTS版... 如果你正打算安装 Ubuntu 系统,可能会被「LTS 版本」和「普通版本」给搞得一头雾水吧?尤其是对于刚入

windows端python版本管理工具pyenv-win安装使用

《windows端python版本管理工具pyenv-win安装使用》:本文主要介绍如何通过git方式下载和配置pyenv-win,包括下载、克隆仓库、配置环境变量等步骤,同时还详细介绍了如何使用... 目录pyenv-win 下载配置环境变量使用 pyenv-win 管理 python 版本一、安装 和

2. c#从不同cs的文件调用函数

1.文件目录如下: 2. Program.cs文件的主函数如下 using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Windows.Forms;namespace datasAnalysis{internal static

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo