500种组合实现故障分类够用不?50种深度学习模型×10种时频方法,故障诊断、分类一键跑通!

今天给大家分享一个故障诊断全家桶项目 ,整合了50种经典的、主流的深度学习模型10种1D转2D的时频变换方法 ,共计 500种组合,并为每个模型配合tsne可视化操作。 先来看50种深度学习模型有哪些:

网络名称(年份) 论文链接
DenseNet (2017) https://arxiv.org/abs/1608.06993
GoogLeNet (2015) https://arxiv.org/abs/1409.4842
InceptionV3 (2016) https://arxiv.org/abs/1512.00567
MobileNetV2 (2018) https://arxiv.org/abs/1801.04381
MobileNetV3 (2019) https://arxiv.org/abs/1905.02244
ShuffleNet (2018) https://arxiv.org/abs/1707.01083
SqueezeNet (2016) https://arxiv.org/abs/1602.07360
EfficientNet (2019) https://arxiv.org/abs/1905.11946
GhostNet (2020) https://arxiv.org/abs/1911.11907
MnasNet (2019) https://arxiv.org/abs/1807.11626
SENet (2018) https://arxiv.org/abs/1709.01507
SKNet (2019) https://arxiv.org/abs/1903.06586
ViT (2021) https://arxiv.org/abs/2010.11929
Swin Transformer (2021) https://arxiv.org/abs/2103.14030
ConvNeXt (2022) https://arxiv.org/abs/2201.03545
WideResNet (2016) https://arxiv.org/abs/1605.07146
ResNeXt (2017) https://arxiv.org/abs/1611.05431
Xception (2017) https://arxiv.org/abs/1610.02357
RegNet (2020) https://arxiv.org/abs/2003.13678
DPN (2017) https://arxiv.org/abs/1707.01629
InceptionResNet (2017) https://arxiv.org/abs/1602.07261
ResNet-FPN (2017) https://arxiv.org/abs/1612.03144
MobileViT (2022) https://arxiv.org/abs/2110.02178
CoAtNet (2021) https://arxiv.org/abs/2106.04803
ConvMixer (2022) https://arxiv.org/abs/2201.09792
PoolFormer (2022) https://arxiv.org/abs/2111.11418
EdgeNeXt (2022) https://arxiv.org/abs/2206.10589
Res2Net (2021) https://arxiv.org/abs/1904.01169
GCNet (2019) https://arxiv.org/abs/1904.11492
RepVGG (2021) https://arxiv.org/abs/2101.03697
FocalNet (2022) https://arxiv.org/abs/2203.11926
CrossViT (2021) https://arxiv.org/abs/2103.14899
PVTv2 (2021) https://arxiv.org/abs/2106.13797
CaiT (2021) https://arxiv.org/abs/2103.17239
EfficientFormer (2022) https://arxiv.org/abs/2206.01191
HRNet (2020) https://arxiv.org/abs/1908.07919

是的,你没看错!本项目就是把以上50种类型的模型全部整合到了一起,你可以方便的学习到每个模型的构建方式,并且将该模型用于故障诊断或者分类模型!

一、项目概述

本项目以经典的 CWRU(西储大学)轴承数据集 为例,完整实现了:

原始振动信号 → 加噪 → 1D转2D时频图 → 深度学习分类 → 评估可视化

整个项目流程只需4个脚本,按顺序运行即可:

步骤 脚本 功能
STEP1 STEP1_add_noise.py 对原始信号添加高斯白噪声(不想加也可以!)
STEP2 STEP2_convert_1D_to_2D.py 将1D信号转为2D时频图像(64×64×3)
STEP3 STEP3_train_single.py 选择一种时频方法+一种模型,训练评估
STEP4 STEP4_train_all.py 一键批量跑所有组合,自动汇总结果

二、10种时频变换方法

项目支持以下 10种1D→2D转换方法,每种方法将长度为2048的振动信号转为64×64×3的图像:

方法 全称 简介
STFT 短时傅里叶变换 最经典的时频分析方法
CWT 连续小波变换 多尺度分析,对数频率覆盖
Mel Mel频谱图 模拟人耳感知的频率尺度
GASF Gramian角求和场 时间序列→极坐标→角度求和
GADF Gramian角差分场 与GASF互补的角度差分编码
MTF Markov转移场 捕捉时间序列的状态转移概率
RP 递归图 相空间重构后的递归可视化
WPD 小波包分解 等频带分解,频率分辨率均匀
ST S变换 结合STFT和CWT优点的时频方法
WVD Wigner-Ville分布 高分辨率时频分布

三、50种深度学习模型

项目涵盖了从经典到前沿的 50种模型,全部手写版,适配64×64输入:

**CNN + 注意力(4种)**CNN2D、SE-CNN2D、CBAM-CNN2D、ECA-CNN2D

**ResNet + YOLO骨干(3种)**ResNet18、DarkNet、CSPNet

**VGG系列(2种)**VGG11、VGG16

**DenseNet(1种)**DenseNet

**Inception系列(2种)**GoogLeNet、InceptionV3

**轻量级网络(7种)**MobileNetV2、MobileNetV3、ShuffleNet、SqueezeNet、EfficientNet、GhostNet、MnasNet

**注意力网络(2种)**SENet、SKNet

**Transformer(3种)**ViT、SwinTransformer、TinyViT

**现代架构(5种)**ConvNeXt、WideResNet、Xception、RegNet、DPN

**组合混合模型(10种)**InceptionResNet、SE-ResNet、CBAM-ResNet、SE-DenseNet、ResNet-FPN、MobileViT、CoAtNet、ConvMixer、PoolFormer、EdgeNeXt

**多尺度/金字塔(11种)**Res2Net、ECA-ResNet、GCNet、RepVGG、VAN、FocalNet、CrossViT、PVTv2、CaiT、EfficientFormer、HRNet

四、输出结果

每个模型训练完成后,自动生成以下评估结果:

1. 准确率/损失曲线(含训练集、验证集、测试集三条曲线)

2. 混淆矩阵

3. 分类报告(Precision、Recall、F1-score)

4. 每类准确率柱状图

5. t-SNE特征可视化(原始特征 + FC层特征)

批量训练完成后,还会自动汇总所有组合的指标(Val Acc、Test Acc、Precision、Recall、F1),并保存为CSV文件,方便对比分析。

五、项目目录

下面这是results里边跑的部分结果:

STEP1:添加噪声

go 复制代码
python STEP1_add_noise.py

读取 dataset/CWRU/ 中的原始 .mat 文件,添加高斯白噪声后保存到 dataset/Add_Noise_CWRU/

STEP2:1D信号转2D时频图

go 复制代码
# 转换全部10种方法
python STEP2_convert_1D_to_2D.py --method all
# 只转换指定方法
python STEP2_convert_1D_to_2D.py --method STFT

生成的 .npy 文件保存在 dataset/Add_Noise_CWRU_2D/,可视化 .png 保存在 dataset/Add_Noise_CWRU_2D_img/

STEP3:单模型训练

打开 STEP3_train_single.py,修改配置区域的 tf_methoduse_model

go 复制代码
tf_method = 'STFT'      # 时频方法
use_model = 'ResNet18'   # 模型名称
epochs = 30              # 训练轮数

然后运行:

go 复制代码
python STEP3_train_single.py

STEP4:一键批量训练

go 复制代码
# 跑全部 500 个组合
python STEP4_train_all.py
# 只跑指定方法和模型
python STEP4_train_all.py --tf_method STFT CWT --use_model ResNet18 CNN2D
# 自定义参数
python STEP4_train_all.py --epochs 50 --batch_size 64 --lr 0.001

六、几个设计细节

数据划分:采用 训练集60% / 验证集20% / 测试集20% 的三分策略,分层采样保证每个类别比例一致。模型选择基于验证集最优,最终指标在测试集上报告,避免信息泄露。

全部手写实现:50种模型均为手写版,不依赖 torchvision 预训练模型,适配 64×64 小尺寸输入,训练速度快,适合学术实验。


以上就是整个项目的介绍。50种模型 × 10种时频方法 = 500种组合,基本涵盖了故障诊断领域主流的深度学习方案,拿来跑实验、写论文都很方便。、代码获取

代码获取

链接:https://mbd.pub/o/bread/YZWcmJ1qZg==

点击下方阅读原文也可跳转!

相关推荐
腾飞开源2 分钟前
05_Dify接入Ollama本地大模型
人工智能·项目实战·dify·ai智能体·ollama·企业级应用·接入模型
HavenlonLabs6 分钟前
重塑链上未来的隐形基石:长期主义下的生态演进
大数据·人工智能·安全·区块链
Jutick11 分钟前
远程 MCP 已配置,为什么你的 AI 开发工具仍查不到 A 股行情?
人工智能·mcp
phltxy12 分钟前
Spring AI Agents 智能体模式实战
java·人工智能·spring
li-xun15 分钟前
2026年6月14日博客精选
人工智能·ai
DogDaoDao25 分钟前
【GitHub】 Headroom 深度解析:AI Agent 上下文压缩层的完整技术拆解
人工智能·深度学习·程序员·github·ai agent·智能体·agent skill
挖坑的张师傅32 分钟前
方便 Mac 本机运行 e2b 的沙箱方案 e2b-local
人工智能·后端
生成论实验室38 分钟前
认知芯片:让判断力在物理定律上运行——AI芯片的第三条路
人工智能·语言模型·机器人·自动驾驶·安全架构
浦信仿真大讲堂38 分钟前
达索系统SIMULIA Abaqus 2026接触和约束的增强新功能介绍
人工智能·python·算法·仿真软件·达索软件
文艺倾年44 分钟前
【强化学习】MDP、贝尔曼方程与CartPole 编程,20W字总结(二)
人工智能·软件工程·强化学习