往期精彩内容:
Python-凯斯西储大学(CWRU)轴承数据解读与分类处理
Python轴承故障诊断入门教学-CSDN博客
Python轴承故障诊断 (13)基于故障信号特征提取的超强机器学习识别模型-CSDN博客
Python轴承故障诊断 (14)高创新故障识别模型-CSDN博客
Python轴承故障诊断 (15)基于CNN-Transformer的一维故障信号识别模型-CSDN博客
轴承故障全家桶更新 | 基于时频图像的分类算法-CSDN博客
Python轴承故障诊断 (16)高创新故障识别模型(二)-CSDN博客
Python轴承故障诊断 (17)基于TCN-CNN并行的一维故障信号识别模型_pytorch使用tcn网络进行故障诊断 csdn-CSDN博客
独家原创 | SCI 1区 高创新轴承故障诊断模型!-CSDN博客
Python轴承故障诊断 (18)基于CNN-TCN-Attention的创新诊断模型-CSDN博客
Python轴承故障诊断 (20)高创新故障识别模型(三)-CSDN博客
注意力魔改 | 超强轴承故障诊断模型!-CSDN博客
Python轴承故障诊断 (21)基于VMD-CNN-BiTCN的创新诊断模型-CSDN博客
基于k-NN + GCN的轴承故障诊断模型-CSDN博客
独家首发 | 基于 KAN、KAN卷积的轴承故障诊断模型-CSDN博客
故障诊断 | 创新模型更新:基于SSA-CNN-Transformer诊断模型-CSDN博客
Python轴承故障诊断 (21)基于VMD-CNN-BiTCN的创新诊断模型-CSDN博客
● 数据集:经测试,模型在CWRU西储大学轴承数据集 和 哈工大航天发动机轴承数据集上表现分类准确率 均为99%!
● 环境框架:python 3.9 pytorch 1.8 及其以上版本均可运行
● 准确率:测试集99%
● 使用对象:论文需求、毕业设计需求者
● 代码保证:代码注释详细、即拿即可跑通。
创新点:
分支一:轴承故障时序信号作为CNN模块输入,通过一系列的1D卷积层和池化层操作,实现对信号数据的时域和局部特征提取;
分之二:轴承故障信号先通过堆叠为2维矩阵,然后是利用通过2D的ResNet卷积层和残差块对数据进行全局特征提取;
并行融合:将1D CNN模块和2D ResNet模块的输出进行并行融合,以获得融合了时域和频域信息的特征表示。这些特征表示经过全连接层进行分类,最终得到故障诊断的结果。通过1D CNN和2D ResNet的并行处理,该模型能够综合利用时域和频域信息,从而提高故障诊断的准确性和鲁棒性,充分挖掘数据之间的关联性,提高了故障诊断的性能。
前言
本文基于凯斯西储大学(CWRU)轴承数据,先经过数据预处理进行数据集的制作和加载,最后通过Pytorch实现1DCNN-2DResNet并行模型对故障数据的分类。凯斯西储大学轴承数据的详细介绍可以参考下文:
Python-凯斯西储大学(CWRU)轴承数据解读与分类处理_cwru数据集-CSDN博客
1 轴承故障数据的预处理
1.1 导入数据
参考之前的文章,进行故障10分类的预处理,凯斯西储大学轴承数据10分类数据集:
train_set、val_set、test_set 均为按照7:2:1划分训练集、验证集、测试集,最后保存数据
上图是数据的读取形式以及预处理思路
1.2 数据预处理,制作数据集
2 基于Pytorch的1DCNN-2DResNet的轴承故障诊断
2.1 定义1DCNN-2DResNet分类网络模型
2.2 设置参数,训练模型
50个epoch,准确率100%,用1DCNN-2DResNet并行网络分类效果显著,模型能够充分提取轴承故障信号的全局空间和局部特征,收敛速度快,性能优越,精度高,效果明显!
2.3 模型评估
准确率、精确率、召回率、F1 Score
故障十分类混淆矩阵:
代码、数据如下:
对数据集和代码感兴趣的,可以关注最后一行
# 加载数据
import torch
from joblib import dump, load
import torch.utils.data as Data
import numpy as np
import pandas as pd
import torch
import torch.nn as nn
# 参数与配置
torch.manual_seed(100) # 设置随机种子,以使实验结果具有可重复性
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
#代码和数据集:https://mbd.pub/o/bread/ZpWakplp