目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)

简介: 这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。

一、目标分类介绍

目标分类是一种监督学习任务,其目标是根据输入数据的特征将其分配到预定义的类别中。这种分类方法在许多实际应用中都有广泛的应用,如垃圾邮件检测、图像识别、情感分析等。

目标分类的基本流程包括:数据预处理(如清洗、标准化)、特征提取、模型选择和训练、模型评估和优化。其中,模型的选择和训练是关键步骤,常见的分类算法有决策树、支持向量机、神经网络等。

目标分类的优点是可以自动地进行分类,无需人工干预,同时也可以通过调整模型参数来提高分类的准确性。但是,目标分类也存在一些挑战,如数据的不平衡问题、过拟合问题等。

1.1 二分类和多分类的区别

二分类是指将样本分为两个类别,多分类是指将样本分为多个类别。在机器学习中,常见的分类算法有决策树、支持向量机、神经网络等。其中,决策树是一种基于规则的分类算法,支持向量机是一种基于间隔最大化的分类算法,神经网络是一种基于非线性映射的分类算法。对于多分类问题,可以采用一对多的模型,即将一个二分类器用于多个类别的预测;也可以采用多对多的模型,即将多个二分类器用于多个类别的预测 。

1.2 单标签和多标签输出的区别

单标签输出是指模型的输出只有一个预测值,即 f (x) = y。多标签输出是指模型的输出具有多个预测值,即 f (x_1,x_2,…,x_n) = y_1, y_2,…,y_n。在多标签分类中,每个输入样本需要零个或多个标签作为输出,同时需要输出 。

二、代码获取

  • 支持自定义数据集训练
  • 支持网络架构:resnet18,resnet50,mobilenet_v2,googlenet
  • 整套训练代码和测试代码(Pytorch版本)
  • 支持多种优化器选择
  • 支持选择多种损失函数:交叉熵、labelSmoothing、BCE等
  • 所有的配置文件写在yaml文件,更方便管理

在这里插入图片描述
在这里插入图片描述

三、数据集准备

在这里插入图片描述

四、环境搭建

安装python、torch、torchvision和pip安装requirements
安装python可以通过anaconda安装虚拟环境,python == 3.7.11
torch和torchvision版本是torch 1.8.0+cpu和torchvision 0.9.0+cpu

参考这篇博客:点击

4.1 环境测试

在这里插入图片描述
在这里插入图片描述

五、模型训练

在这里插入图片描述
然后运行python train.py即可开始训练。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、模型测试

在这里插入图片描述
在这里插入图片描述
设置以上五个地方。由于网络真实预测的时候,可能会出现一张图片包含多种分类的目标。考虑到这种情况就不能简单的用argmax来获取最大值的索引了,所以我们应该通过设置阈值来记录相应类别的索引,然后再根据索引回溯到我们原始的目标信息。
修改后的代码如下

      # 单标签分类
      pred_index = np.argmax(prob_scores, axis=1)
      pred_score = np.max(prob_scores, axis=1)

修改为

    def filter_array(self, arr, threshold):
        # 获取满足条件的索引和值
        arr = arr.flatten()
        indices = np.where(arr >= threshold)[0]
        values = arr[indices]
        return indices, values

    pred_index,pred_score = self.filter_array(prob_scores, threshold)

这里的阈值可以直接通过参数来进行设置。

在这里插入图片描述
在这里插入图片描述

6.1 多标签训练-单标签输出结果

如果只需要输出单个目标,需要修改成以下地方
在这里插入图片描述

6.2 多标签训练-多标签输出结果

修改成这样
在这里插入图片描述

目录
相关文章
|
5月前
|
存储 人工智能 测试技术
HarmonyOS Next~HarmonyOS应用测试全流程解析:从一级类目上架到二级类目专项测试
本文深入解析HarmonyOS应用测试全流程,涵盖从一级类目通用测试到二级类目专项测试的技术方案。针对兼容性、性能、安全测试及分布式能力验证等关键环节,提供详细实践指导与代码示例。同时,结合典型案例分析常见问题及优化策略,帮助开发者满足华为严苛的质量标准,顺利上架应用。文章强调测试在开发中的核心地位,助力打造高品质HarmonyOS应用。
263 2
|
3月前
|
安全 Java 测试技术
Java 项目实战中现代技术栈下代码实现与测试调试的完整流程
本文介绍基于Java 17和Spring技术栈的现代化项目开发实践。项目采用Gradle构建工具,实现模块化DDD分层架构,结合Spring WebFlux开发响应式API,并应用Record、Sealed Class等新特性。测试策略涵盖JUnit单元测试和Testcontainers集成测试,通过JFR和OpenTelemetry实现性能监控。部署阶段采用Docker容器化和Kubernetes编排,同时展示异步处理和反应式编程的性能优化。整套方案体现了现代Java开发的最佳实践,包括代码实现、测试调试
146 0
|
5月前
|
传感器 算法 数据安全/隐私保护
基于GA遗传优化的三维空间WSN网络最优节点部署算法matlab仿真
本程序基于遗传算法(GA)优化三维空间无线传感网络(WSN)的节点部署,通过MATLAB2022A实现仿真。算法旨在以最少的节点实现最大覆盖度,综合考虑空间覆盖、连通性、能耗管理及成本控制等关键问题。核心思想包括染色体编码节点位置、适应度函数评估性能,并采用网格填充法近似计算覆盖率。该方法可显著提升WSN在三维空间中的部署效率与经济性,为实际应用提供有力支持。
|
4月前
|
消息中间件 缓存 监控
性能测试怎么做?方法、流程与核心要点解析
本文系统阐述了性能测试的核心方法论、实施流程、问题定位优化及报告编写规范。涵盖五大测试类型(负载验证、极限压力、基准比对、持续稳定性、弹性扩展)与七项关键指标,详解各阶段任务如需求分析、场景设计和环境搭建,并提供常见瓶颈识别与优化实战案例。最后规范测试报告内容框架与数据可视化建议,为企业级实践提出建立基线库、自动化回归和全链路压测体系等建议,助力高效开展性能测试工作。
|
6月前
|
存储 运维 监控
2025年4月深度评测:10款最值得部署的网络监控软件
真正卓越的运维不仅仅是对当前问题的解决,更在于对未来的预测和防范。 OpManager 的预测报表功能可以为用户提供有关未来存储需求增长方式的直观展示,帮助用户进行基于需求的容量规划,从而避免成本浪费。
248 0
|
10月前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
229 17
|
10月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
179 10
|
10月前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
10月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
191 10
|
10月前
|
监控 安全 网络安全
网络安全与信息安全:漏洞、加密与意识的交织
在数字时代的浪潮中,网络安全与信息安全成为维护数据完整性、保密性和可用性的关键。本文深入探讨了网络安全中的漏洞概念、加密技术的应用以及提升安全意识的重要性。通过实际案例分析,揭示了网络攻击的常见模式和防御策略,强调了教育和技术并重的安全理念。旨在为读者提供一套全面的网络安全知识框架,从而在日益复杂的网络环境中保护个人和组织的资产安全。