cnn实现一维震动信号故障诊断

使用TensorFlow实现一维卷积神经网络(CNN)对震动信号进行故障诊断。构建模型包括多个卷积层、池化层,以及全连接层,采用ReLU激活函数,以AdamOptimizer进行优化,通过dropout防止过拟合。训练和测试过程展示了模型的准确率。
摘要由CSDN通过智能技术生成

cnn实现一维震动信号故障诊断

import os
os.environ[‘TF_CPP_MIN_LOG_LEVEL’] = ‘2’
import numpy as np
import scipy.io as sio
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
import xlrd
from openpyxl import Workbook

以交互式方式启动session

如果不使用交互式session,则在启动session前必须构建整个计算图,才能启动该计算图

#sess = tf.InteractiveSession()

data = sio.loadmat(‘ballfault_DE.mat’)
sensorlenth=2048*36
condition=4#工况数
classification=10#类别
L=2048#网络输入长度
evfisam_num=int(sensorlenth/L)

evfitrain_num=int(evfisam_num3/4)#每个工况用于训练的样本数
evfitest_num=evfisam_num-evfitrain_num#每个工况用于测试的样本数
div=1
C=4
al=512
evdoctrain_num=condition
(evfitrain_num-1)C
evdoctest_num=condition
evfitest_num#类别数×工况数×每个文件的样本数
batch_num=int(evdoctrain_num/div)
train_num=evdoctrain_numclassification
test_num=evfitest_num
condition*classification

cnn_train=np.zeros((train_num,L))
cnn_test=np.zeros((test_num,L))
sensor_1=data[‘ballfault’]
for i in range(classification*condition):
sensor=sensor_1[0:sensorlenth,i]

cnn_train_1=sensor[0:L*evfitrain_num]

for j in range(C):#数据增强C次
	cnn_train[(i*C+j)*(evfitrain_num-1):(i*C+j+1)*(evfitrain_num-1),:]=cnn_train_1[j*al:(evfitrain_num-1)*L+j*al].reshape((evfitrain_num-1),L)

cnn_test_1=sensor[L*evfitrain_num:evfisam_num*L]
cnn_test[i*evfitest_num:(i+1)*evfitest_num,:]=cnn_test_1[0:evfitest_num*L].reshape(evfitest_num,L)

lable_train=np.zeros(train_num)
lable_test=np.zeros(test_num)
for num_dir in range(0,classification):
lable_tr

  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值