# faultdiagnostics_pytorch
**Repository Path**: phm720/faultdiagnostics_pytorch
## Basic Information
- **Project Name**: faultdiagnostics_pytorch
- **Description**: Pytorch框架搭建简单CNN网络实现一维振动信号四分类实现故障诊断
- **Primary Language**: Python
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2024-10-01
- **Last Updated**: 2025-08-06
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# faultdiagnostics_pytorch
## 1. 项目介绍
用Pytorch框架搭建简单`CNN`网络实现一维振动信号四分类进行故障诊断
## 2. 项目结构介绍
本项目包含以下5个文件/文件夹
**- dataset文件夹
**
dataset文件夹内包含4个`xlsx`文件:`InnerFault1000.xlsx`,`InnerOutterFault1000.xlsx`,`Normal1000.xlsx`,`RollFault1000.xlsx`,分别存储了某型号轴承在内圈故障、内外圈混合故障、正常和滚动体故障等4种状态下的加速度信号。
**- ExcelProcessor.py
**
用于读取/写入xlsx文件,按照用户自己的需求,修改样本划分的方式等
**- Models.py
**
定义了3个类,分别是`CNN_Diagnostics`, `CNN`,`Transformer`,用户可在这个文件里定义自己的模型
**- utils.py
**
存放了一个用户打印TSNE降维图的函数
**- main
**
整个程序的入口文件
## 3. 安装教程
用到的库详见`requirements.txt`文件,可采用`pip install -r requirements.txt`命令一键安装所有库(确保在正确的环境下)
## 4. 数据集说明
- 每一个`xlsx`文件包含2个`sheet`,分别命名为`sheet1`和`raw`,其中`raw`记录的是原始数据,`sheet1`记录的是经过`ExcelProcessor.py`文件处理后生成的数据,用户可修改样本划分的参数``sample_size`,修改后可重复执行`ExcelProcessor.py`,将覆盖原有的`sheet1`中数据
- raw中的数据为50000行3列,三列分别记录了加速度传感器`XYZ`三个方向上的加速度信号,50000为数据长度
- 在当前程序中,具体的,在`ExcelProcessor.py`中,设置了参数`sample_size = 100`,含义为每100个数据点划分为一个样本(即特征维度是100),因此50000个数据点共分为了500个样本。划分后的样本写入`sheet1`,因此`sheet1`中数据为500行100列,每行为一个样本
- 在当前程序中,具体的,在`main.py`中,有参数`height = 10`, `width = 10`, 含义为将每个样本(100个数据点)重塑(reshape)成10行10列,这里参照了图像处理中的做法,即将100个数据点看做是高度为10,宽度为10的“图像”,用户可自定义样本划分参数`sample_size`,`height`, `width`,将会影响样本的数量
- 当`sample_size = 100`,`height = 10`, `width = 10`,并且假设`batch_size=32`时,`torch.nn.Conv2d`所接收的张量的形状为`(batch_size, C, H, W)`,其中C为通道数,对于RGB图像,`C=3`,对于本项目,`C=1`,`H`和`W`分别为`height`和`width`,因此本项目的输入张量形状为`(32,1,10,10)`,可以用以下代码生成张量以测试模型每层的输出:`x = torch.randn(size=(32, 1, 10, 10))`