信号分类 搭建RNN深度学习神经网络代码
时间: 2023-10-11 09:11:19 浏览: 41
以下是一个简单的例子,用于对信号进行分类的 RNN 深度学习神经网络代码:
``` python
import numpy as np
from keras.utils import np_utils
from keras.models import Sequential
from keras.layers import Dense, Dropout, LSTM
# 加载数据
X_train = np.load('X_train.npy')
y_train = np.load('y_train.npy')
X_test = np.load('X_test.npy')
y_test = np.load('y_test.npy')
# 将目标变量进行 one-hot 编码
y_train = np_utils.to_categorical(y_train)
y_test = np_utils.to_categorical(y_test)
# 创建模型
model = Sequential()
model.add(LSTM(64, input_shape=(X_train.shape[1], X_train.shape[2]), return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(32, return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(16))
model.add(Dropout(0.2))
model.add(Dense(y_train.shape[1], activation='softmax'))
# 编译模型
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
# 训练模型
model.fit(X_train, y_train, batch_size=64, epochs=50, validation_data=(X_test, y_test))
# 评估模型
scores = model.evaluate(X_test, y_test, verbose=0)
print("Accuracy: %.2f%%" % (scores[1]*100))
```
在上述代码中,我们使用了 Keras 库来搭建 RNN 模型。我们首先加载数据并对目标变量进行 one-hot 编码。然后,我们创建序列模型,并将 LSTM 层和 Dropout 层添加到模型中。最后,我们使用 softmax 激活函数的密集层来输出预测结果。我们使用交叉熵损失函数和 Adam 优化器来编译模型,并使用训练数据进行训练。最后,我们使用测试数据评估模型的准确性。