BP神经网络 4分类算法代码
时间: 2023-09-13 22:07:56 浏览: 108
以下是使用Python和Keras库实现BP神经网络的4分类算法代码示例:
```python
import numpy as np
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation
from keras.optimizers import SGD
# 构建模型
model = Sequential()
model.add(Dense(64, input_dim=10))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(64))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(4))
model.add(Activation('softmax'))
# 设置优化器参数
sgd = SGD(lr=0.01, momentum=0.9, decay=0.0, nesterov=False)
model.compile(loss='categorical_crossentropy', optimizer=sgd)
# 训练模型
X_train = np.random.random((1000, 10))
y_train = np.random.randint(4, size=(1000, 1))
y_train = np.eye(4)[y_train.reshape(-1)]
model.fit(X_train, y_train, nb_epoch=20, batch_size=16)
# 测试模型
X_test = np.random.random((100, 10))
y_test = np.random.randint(4, size=(100, 1))
y_test = np.eye(4)[y_test.reshape(-1)]
score = model.evaluate(X_test, y_test, batch_size=16)
print(score)
```
其中,模型结构为输入层(10个神经元)、两个隐藏层(64个神经元)、输出层(4个神经元),使用ReLU激活函数和Dropout防止过拟合。优化器使用随机梯度下降(SGD),损失函数为交叉熵(categorical_crossentropy)。训练数据为1000个样本,测试数据为100个样本,迭代20次,批量大小为16。最终输出测试集上的损失值。
阅读全文