python实现一维CNN二分类
时间: 2023-12-28 20:24:36 浏览: 40
以下是使用Keras实现一维CNN二分类的Python代码示例:
```python
from keras.models import Sequential
from keras.layers import Conv1D, MaxPooling1D, Flatten, Dense
# 构建模型
model = Sequential()
model.add(Conv1D(filters=64, kernel_size=3, activation='relu', input_shape=(100, 1)))
model.add(Conv1D(filters=64, kernel_size=3, activation='relu'))
model.add(MaxPooling1D(pool_size=2))
model.add(Flatten())
model.add(Dense(100, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# 编译模型
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# 训练模型
model.fit(X_train, y_train, epochs=10, batch_size=32)
# 评估模型
loss, accuracy = model.evaluate(X_test, y_test, verbose=0)
print('Accuracy: %f' % (accuracy*100))
```
其中,X_train和X_test是形状为(样本数, 时间步长, 特征数)的输入数据,y_train和y_test是形状为(样本数,)的标签数据。在这个例子中,我们使用了两个卷积层和一个全连接层,其中第一个卷积层有64个过滤器,大小为3,激活函数为ReLU,输入形状为(100, 1),第二个卷积层与第一个卷积层相同,最大池化层的大小为2,全连接层有100个神经元,激活函数为ReLU,输出层有1个神经元,激活函数为sigmoid。我们使用二元交叉熵作为损失函数,Adam优化器作为优化器,并在训练过程中监控准确率。