• 大小: 29KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: 其他
  • 标签: 机器学习  

资源简介

使用TensorFlow对一维电机振动信号检测(输入的信号经过了小波变换,8个特征)

资源截图

代码片段和文件信息

# -*- coding: utf-8 -*-
“““
Created on Mon Apr  2 11:46:50 2018

@author: FDS
“““
#电机故障数据检测(只针对一圈)
#一组数据一组数据进行训练
#
#
import tensorflow as tf
import numpy as np
import scipy.io as sio
import random
#输入数据部分
#
data_inter=sio.loadmat(‘C:/Users/FDS/Desktop/data2018/data_prepare_inter.mat‘)[‘data_E‘]#故障数据
data_normal=sio.loadmat(‘C:/Users/FDS/Desktop/data2018/data_prepare_normal.mat‘)[‘data_Enormal‘]#正常总数据



a=np.array(data_inter[0:100])
b=np.array(data_normal[0:450])

train_data=np.concatenate((ab)axis=0)

c=np.array(data_inter[100:])
d=np.array(data_normal[450:])

test_data=np.concatenate((cd)axis=0)

y_train_data=np.concatenate((np.ones(a.shape[0])np.zeros(b.shape[0]))axis=0)#训练标签
y_train_data.shape=(y_train_data.shape[0]1)


y_test_data=np.concatenate((np.ones(c.shape[0])np.zeros(d.shape[0]))axis=0)#测试标签
y_test_data.shape=(y_test_data.shape[0]1)

e=np.zeros((5502)) #全部训练数据的标签

for i in range(0100):
    e[i][1]=1  
for i in range(100550):
    e[i][0]=1



e_test=np.zeros((572))
for i in range(022):
    e_test[i][1]=1

for i in range(2257):
    e_test[i][0]=1
    
#模型搭建部分
x_data=tf.placeholder(“float32“[None8])
weight=tf.Variable(tf.ones([82]))
bias=tf.Variable(tf.ones([2]))
y_model=tf.nn.softmax(tf.matmul(x_dataweight)+bias)

y_data=tf.placeholder(“float32“[None2])
loss=tf.reduce_sum(tf.pow((y_model-y_data)2))

train_step=tf.train.GradientDescentOptimizer(0.01).minimize(loss)
init=tf.global_variables_initializer()
sess=tf.Session()
sess.run(init)




temp_x=np.zeros((508))#随机取50组数据进行训练
temp_y=np.zeros((502))#随机50组数据的标签值
#训练
for i in range(1000):
    rand=random.randint(0499)  #产生随机数
    for k in range(050):
        temp_x[k]=train_data[rand+k]#训练值
        temp_y[k]=e[rand+k]#标签值
    sess.run(train_stepfeed_dict={x_data:temp_xy_data:temp_y}) 
    if i%5==0:
        correct_prediction=tf.equal(tf.argmax(y_model1)tf.argmax(y_data1))
        accuracy=tf.reduce_mean(tf.cast(correct_prediction“float“))
        print(sess.run(accuracyfeed_dict={x_data:test_datay_data: e_test}))

 print(sess.run(weight))  #输出权重
 print(sess.run(bias))    #输入偏离值

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2404  2018-04-08 16:27  untitled1.py

     文件       5838  2018-04-01 14:29  data2018\data_prepare_inter.mat

     文件      22389  2018-04-01 14:39  data2018\data_prepare_normal.mat

     目录          0  2018-04-01 15:00  data2018

----------- ---------  ---------- -----  ----

                30631                    4


评论

共有 条评论