使用python實現CNN-GRU故障診斷的代碼示例
要實現1DCNN-GRU進行故障診斷,您可以使用以下Python代碼作為參考:
首先,導入所需的庫:
import numpy as np import tensorflow as tf from tensorflow.keras.layers import Conv1D, MaxPooling1D, GlobalAveragePooling1D, GRU, Dense from tensorflow.keras.models import Sequential from sklearn.metrics import classification_report, confusion_matrix import matplotlib.pyplot as plt import seaborn as sns
加載訓練集和測試集的數據:
train_X = np.load('train_X.npy') # 加載訓練集特征數據 train_Y = np.load('train_Y.npy') # 加載訓練集標簽數據 test_X = np.load('test_X.npy') # 加載測試集特征數據 test_Y = np.load('test_Y.npy') # 加載測試集標簽數據
定義模型結構:
model = Sequential() model.add(Conv1D(64, 3, activation='relu', input_shape=train_X.shape[1:])) model.add(MaxPooling1D(2)) model.add(Conv1D(128, 3, activation='relu')) model.add(MaxPooling1D(2)) model.add(GRU(64, dropout=0.2, recurrent_dropout=0.2)) model.add(Dense(1, activation='sigmoid')) model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
訓練模型:
繪制訓練過程的準確率和損失曲線:
plt.plot(history.history['accuracy']) plt.plot(history.history['val_accuracy']) plt.title('Model Accuracy') plt.ylabel('Accuracy') plt.xlabel('Epoch') plt.legend(['Train', 'Test'], loc='upper left') plt.show() plt.plot(history.history['loss']) plt.plot(history.history['val_loss']) plt.title('Model Loss') plt.ylabel('Loss') plt.xlabel('Epoch') plt.legend(['Train', 'Test'], loc='upper right') plt.show()
在測試集上進行預測并計算準確率和混淆矩陣:
pred_Y = model.predict(test_X) pred_Y = np.round(pred_Y).flatten() accuracy = np.mean(pred_Y == test_Y) print("Test Accuracy: {:.2f}%".format(accuracy * 100)) cm = confusion_matrix(test_Y, pred_Y) sns.heatmap(cm, annot=True, fmt="d", cmap="Blues", xticklabels=['Normal', 'Fault'], yticklabels=['Normal', 'Fault']) plt.title("Confusion Matrix") plt.xlabel("Predicted Labels") plt.ylabel("True Labels") plt.show()
請確保您已經準備好訓練集和測試集的數據(train_X.npy、train_Y.npy、test_X.npy和test_Y.npy)。這只是一個簡單示例,您可能需要根據您的數據集的特點進行必要的調整,例如輸入信號的形狀、類別數量和標簽格式等。
希望對您有所幫助!如需更詳細或個性化的幫助,請?zhí)峁└嘞嚓P代碼和數據。
到此這篇關于使用python實現CNN-GRU故障診斷的文章就介紹到這了,更多相關python CNN-GRU故障診斷內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python Selenium XPath根據文本內容查找元素的方法
這篇文章主要介紹了Python Selenium XPath根據文本內容查找元素的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12