使用 Keras 构建简单神经网络模型:XOR 问题实例
使用 Keras 构建简单神经网络模型:XOR 问题实例
本文将使用 Keras 库构建一个简单的神经网络模型,并以 XOR 问题为例,演示如何训练和预测结果。
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
# 构建数据集
data = np.array([[1, 1], [1, 0], [0, 1], [0, 0]])
labels = np.array([1, 0, 0, 0])
# 构建神经网络模型
model = Sequential()
model.add(Dense(4, input_dim=2, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
# 训练模型
model.fit(data, labels, epochs=1000, batch_size=4)
# 预测结果
predictions = model.predict(data)
print(predictions)
模型结构解析:
- 第 6、7 行代码:
model.add(Dense(4, input_dim=2, activation='relu'))构建一个包含 2 个输入神经元和 4 个隐藏神经元的全连接层,并使用 ReLU 激活函数进行激活。 - 第 8 行代码:
model.add(Dense(1, activation='sigmoid'))构建一个只包含 1 个输出神经元的全连接层,并使用 sigmoid 激活函数进行激活。 - 模型编译部分:使用二元交叉熵损失函数 ('binary_crossentropy') 和 Adam 优化器 ('adam') 进行模型的编译,并使用准确率 ('accuracy') 作为评估指标。
代码功能解释:
- 使用 NumPy 库创建 XOR 问题的输入数据
data和标签数据labels。 - 使用 Keras 的 Sequential API 构建神经网络模型。
- 训练模型,使用
fit()方法训练模型,指定训练数据、标签数据、训练轮数 (epochs) 和批次大小 (batch_size)。 - 使用
predict()方法预测输入数据的输出结果。
结论:
本文通过一个简单的 XOR 问题示例,演示了如何使用 Keras 库构建、训练和预测神经网络模型。这个例子展示了神经网络的基本结构和训练过程,为进一步学习更复杂的神经网络模型打下了基础。
原文地址: https://www.cveoy.top/t/topic/jGo9 著作权归作者所有。请勿转载和采集!