tensorflow自编码器+softmax对凯斯西储大学轴承数据进行故障分类

先放参考链接,感谢大神们带来的启发:
凯斯西储大学轴承数据故障分类(使用卷积神经网络)
TensorFlow实现MNIST识别(softmax)
前情回顾:
tensorflow 自编码器+softmax对mnist数据集进行分类
之前利用tensorflow建立自编码器,再加了分类层,实现了对MNIST数据集的分类,但是这是对于图片的处理,我更想要的是对一些时序数据进行分析,因此,尝试用凯斯西储大学的轴承数据进行故障分类。这个轴承数据网上可以直接下载,也有很多介绍,这里就不介绍了。只是提一下我的数据的前期处理。
根据上面的第一个参考链接,原博主是用txt版本的轴承数据直接读入的,但是网上基本找不到这种数据,官网下载下来的也都是mat版本,因此,我也修改了原博主的代码,改为读取mat文件。但是还是存在问题,就是每个mat文件里有3-4个列表,每个列表名字不同且各自包括了120000以上的数据,而我们只需要120000个数据,也就是说只要一个列表的就足够了,其次,当我们利用sicomat函数读取mat文件后,由于有多个列表,导致没办法直接把120000个数据提出来,需要先读取每个列表的名字,再分名字读取数据,而我们一共有10个mat文件,这个工作量就很大了。由于我是个小新手,实在还不太会这个操作,因此我选择了更简单粗暴的方法,就是先用matlab软件打开这些mat文件,删掉文件里多余的列表,只保留一个,同时,还是为了读取数据的时候方便(不然每个文件的列表名字不一样,那就还得读取列表名字后才能操作),将列表名字统一改为"X"。依次对10个文件进行逐个操作后,放入到对应的类别中去。

# -*- coding: utf-8 -*-
"""
Created on Tue Aug 18 16:53:14 2020

@author: Administrator
"""

import numpy as np
import scipy.io as scio
import tensorflow as tf
import os

"""
预处理有以下几个步骤:
1.以400个采样点为一个样本,取300个样本(取120000个采样点)
2.取200个作为训练集,100个作为测试集。
3.将六种类别数据堆叠成numpy数组
3.把训练集和测试集样本变形为(1620,20,20,1),这样就可以喂入卷积神经网络里进行训练了。
4.打乱数据
5.将标签转化为one-hot
"""
#重置图,否则后面跑第二遍进行预测时,会提示找不到变量(因为我们第二遍运行的时候重复定义了)
tf.reset_default_graph()

def yuchuli(data,label):
    a = scio.loadmat(data)
    a=a['X']
    a = a[0:120000]
    a  = a.reshape(300,400)
    np.random.shuffle(a) #打乱函数顺序
    train = a[:200,:]
    test = a[200:,:]
    label_test = np.array([label for i in range(0,100)])
    #将标签填入后,label_test形状为(100,),维度并没有固定,这样我们后面无法天赋到y_true中,因此想要用reshap
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值