写CNN-LSTM的代码
时间: 2023-03-03 18:54:35 浏览: 128
以下是一个简单的使用Python和Keras库编写CNN-LSTM模型的示例代码,用于对时序数据进行分类:
```python
from keras.models import Sequential
from keras.layers import Dense, Dropout, Conv1D, LSTM, MaxPooling1D
# 定义CNN-LSTM模型
model = Sequential()
model.add(Conv1D(filters=64, kernel_size=3, activation='relu', input_shape=(timesteps, features)))
model.add(Conv1D(filters=64, kernel_size=3, activation='relu'))
model.add(Dropout(0.5))
model.add(MaxPooling1D(pool_size=2))
model.add(LSTM(100))
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, epochs=50, batch_size=64, validation_data=(X_test, y_test))
```
上述代码中,`timesteps`是时间步数,`features`是每个时间步的特征数量,`num_classes`是要分类的类别数量。模型包含两个卷积层,一个池化层,一个LSTM层和一个全连接层。在训练模型之前,需要将训练数据`X_train`和`y_train`进行处理。训练过程中还可以使用验证集`X_test`和`y_test`进行模型性能评估。
阅读全文