效果视频:基于深度自编码网络实现轴承故障诊断(python代码,tensorflow框架)_哔哩哔哩_bilibili
环境库要求:tensorflow>=2.4.0即可
1.网络模型(数据集为CWRU),项目文件如下所示
以0HP文件夹为例,进行展示
Inner、Normal、Outer和Roller文件夹是装载的原始数据集,data_processing.py是处理原始数据,生成样本(1024的长度) 和对应的标签,DAE.py是诊断程序。
代码实现了一个基于DAE的分类模型,用于对给定数据集进行分类。首先,通过DAE模型对原始数据进行特征提取和降维,然后使用分类模型将提取的特征与标签相匹配,以便对新数据进行分类。
代码的主要流程:
- 导入所需的Python库,包括os、numpy、pandas、tensorflow等。
- 加载数据和标签,将标签转换为one-hot编码形式。
- 对数据集进行划分,分为训练集和测试集。
- 搭建一个深度自编码神经网络(DAE)模型,用于特征提取和降维。
- 训练DAE模型,以学习到压缩数据的表示,并将其用于后续的分类任务。
- 获取DAE模型的编码器部分的输出,用于训练分类模型。
- 搭建一个分类模型,用于对数据进行分类。
- 训练分类模型,以学习如何将编码器输出与标签相对应,以便对新的数据进行分类。
2.效果(展示图中epoch为1000),训练集与测试集比例是4:1
2.1.0HP训练集准确率曲线
.
2.2.0HP训练集损失曲线
2.3.0HP测试集准确率曲线
2.4.0HP测试集损失曲线
测试集的混淆矩阵
2.1HP
1HP训练集准确率曲线
1HP测试集准确率曲线
1HP训练集损失曲线
2HP
2HP训练集准确率曲线
2HP测试集准确率曲线
3HP
3HP训练集准确率曲线
3HP测试集准确率曲线
对项目感兴趣的,可以关注最后一行
import os
import numpy as np
import pandas as pd
import tensorflow as tf
from tensorflow.keras import layers, models, optimizers
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
from keras.utils import np_utils
from collections import Counter
#代码:https://mbd.pub/o/bread/ZJialJ5v