如何用python搭建CNN-BILSTM的深度学习模型
时间: 2023-12-19 09:06:04 浏览: 76
下面是一个用 Python 和 Keras 库搭建 CNN-BILSTM 模型的示例代码:
```python
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten, Conv1D, MaxPooling1D, Bidirectional, LSTM
# 创建模型
model = Sequential()
# 添加一个一维卷积层和最大池化层
model.add(Conv1D(filters=64, kernel_size=3, padding='same', activation='relu', input_shape=(input_shape)))
model.add(MaxPooling1D(pool_size=2))
# 添加一个双向LSTM层
model.add(Bidirectional(LSTM(64, return_sequences=True)))
# 添加一个全连接层
model.add(Dense(64, activation='relu'))
# 添加一个Dropout层
model.add(Dropout(0.5))
# 添加一个输出层
model.add(Dense(num_classes, activation='softmax'))
# 编译模型
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
# 训练模型
model.fit(X_train, y_train, batch_size=32, epochs=10, validation_data=(X_test, y_test))
```
这个模型包含一个一维卷积层和最大池化层,一个双向 LSTM 层,一个全连接层,一个 Dropout 层和一个输出层。其中,一维卷积层和最大池化层用于提取特征,双向 LSTM 层用于学习序列信息,全连接层用于将特征进行分类,Dropout 层用于防止过拟合。模型使用交叉熵损失函数和 Adam 优化器进行训练。
阅读全文