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

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

一、目标分类介绍

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

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

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

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 多标签训练-多标签输出结果

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

目录
相关文章
|
1月前
|
安全 Unix Linux
Metasploit Pro 4.22.7-2025050101 发布 - 专业渗透测试框架
Metasploit Pro 4.22.7-2025050101 发布 - 专业渗透测试框架
77 10
Metasploit Pro 4.22.7-2025050101 发布 - 专业渗透测试框架
|
2月前
|
安全 Ubuntu Linux
Metasploit Pro 4.22.7-2025042101 发布 - 专业渗透测试框架
Metasploit Pro 4.22.7-2025042101 (Linux, Windows) - 专业渗透测试框架
70 5
Metasploit Pro 4.22.7-2025042101 发布 - 专业渗透测试框架
|
2月前
|
测试技术
Fast网络速度测试工具
Fast是由Netflix提供的网络速度测试工具,可快速测量用户的下载、上传速度及延迟。其全球可用、无广告干扰,并支持多种设备。测试自动进行,结果以Mbps显示。此外,用户可通过“Show more info”查看上传速度和延迟(含缓冲膨胀)。Fast以其简单快捷的特点,帮助用户了解网络性能并解决潜在问题,是评估网速的理想选择。
139 0
Fast网络速度测试工具
|
14天前
|
机器学习/深度学习 API TensorFlow
BayesFlow:基于神经网络的摊销贝叶斯推断框架
BayesFlow 是一个基于 Python 的开源框架,利用摊销神经网络加速贝叶斯推断,解决传统方法计算复杂度高的问题。它通过训练神经网络学习从数据到参数的映射,实现毫秒级实时推断。核心组件包括摘要网络、后验网络和似然网络,支持摊销后验估计、模型比较及错误检测等功能。适用于流行病学、神经科学、地震学等领域,为仿真驱动的科研与工程提供高效解决方案。其模块化设计兼顾易用性与灵活性,推动贝叶斯推断从理论走向实践。
66 7
BayesFlow:基于神经网络的摊销贝叶斯推断框架
|
24天前
|
安全 Unix Linux
Metasploit Pro 4.22.7-2025052201 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.7-2025052201 (Linux, Windows) - 专业渗透测试框架
44 5
Metasploit Pro 4.22.7-2025052201 (Linux, Windows) - 专业渗透测试框架
|
1月前
|
数据采集 安全 Linux
Metasploit Pro 4.22.7-2025051201 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.7-2025051201 (Linux, Windows) - 专业渗透测试框架
40 4
Metasploit Pro 4.22.7-2025051201 (Linux, Windows) - 专业渗透测试框架
|
1月前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.63 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.63 (macOS, Linux, Windows) - 开源渗透测试框架
42 4
Metasploit Framework 6.4.63 (macOS, Linux, Windows) - 开源渗透测试框架
|
2月前
|
人工智能 自然语言处理 JavaScript
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
Magnitude是一个基于视觉AI代理的开源端到端测试框架,通过自然语言构建测试用例,结合推理代理和视觉代理实现智能化的Web应用测试,支持本地运行和CI/CD集成。
322 15
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
|
2月前
|
存储 安全 Linux
Metasploit Pro 4.22.7-2025040601 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.7-2025040601 (Linux, Windows) - 专业渗透测试框架
104 1
Metasploit Pro 4.22.7-2025040601 (Linux, Windows) - 专业渗透测试框架
|
2月前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.55 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.55 (macOS, Linux, Windows) - 开源渗透测试框架
57 0
Metasploit Framework 6.4.55 (macOS, Linux, Windows) - 开源渗透测试框架