基于LSTM的轴承故障诊断

有一段时间没有更新博客了,今天写一篇以前研究的LSTM应用于轴承故障诊断

数据集来源与处理方式与这篇文章里相同https://blog.csdn.net/FUCCKL/article/details/88169151

模型结构很简单

def create_model():
    model = Sequential()
    #输入数据的shape为(n_samples, timestamps, features)
    #隐藏层设置为20, input_shape元组第二个参数1意指features为1
    model.add(LSTM(units=20,input_shape=(train_x.shape[1], train_x.shape[2])))
    #model.add(Dropout(0.2))
    #后接全连接层,直接输出单个值,故units为10
    model.add(Dense(units=10))
    model.add(Activation('softmax'))#选用非线性激活函数
    model.compile(loss='categorical_crossentropy',optimizer=Adam(lr=0.001), metrics=['accuracy'])#损失函数为平均均方误差,优化器为Adam,学习率为0.001
    return model

训练模型并验证

model = create_model()
history =model.fit(train_x, train_y, epochs=1000, batch_size=100, validation_data=(test_x,test_y))#训练模型并进行测试

后10次迭代验证准确率为:

[0.9733333388964335, 0.9466666777928671, 0.9333333373069763, 0.9900000095367432, 0.9933333396911621, 0.9900000095367432, 0.9733333388964335, 0.9900000095367432, 0.9900000095367432, 0.996666669845581]

history训练和验证准确率曲线为:

history训练和验证loss曲线为:

由曲线可以看出用LSTM做故障诊断,很不稳定,但是经过一定次数的迭代后在某次迭代后还是可以达到很好的效果。

我在研究的过程中经过多次的参数调整,LSTM准确率始终无法达到稳定,感兴趣的朋友可以探讨一下

 

评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值