单层前馈神经网络python代码
时间: 2024-04-21 12:19:56 浏览: 140
单层前馈神经网络(也称为感知器)是一种最简单的神经网络模型,它只包含一个输入层和一个输出层,没有隐藏层。以下是一个使用Python实现的单层前馈神经网络的代码示例:
```python
import numpy as np
class SingleLayerPerceptron:
def __init__(self, input_size):
self.weights = np.zeros(input_size)
self.bias = 0
def predict(self, inputs):
summation = np.dot(inputs, self.weights) + self.bias
activation = self.step_function(summation)
return activation
def train(self, inputs, labels, learning_rate, epochs):
for _ in range(epochs):
for i in range(len(inputs)):
prediction = self.predict(inputs[i])
error = labels[i] - prediction
self.weights += learning_rate * error * inputs[i]
self.bias += learning_rate * error
def step_function(self, x):
return 1 if x >= 0 else 0
# 示例用法
inputs = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
labels = np.array([0, 0, 0, 1])
perceptron = SingleLayerPerceptron(input_size=2)
perceptron.train(inputs, labels, learning_rate=0.1, epochs=10)
test_inputs = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
for test_input in test_inputs:
prediction = perceptron.predict(test_input)
print(f"Input: {test_input}, Prediction: {prediction}")
```
这段代码实现了一个单层前馈神经网络(感知器),使用了numpy库进行矩阵运算。在示例中,我们使用逻辑门的数据进行训练和测试,训练后的感知器可以根据输入预测相应的输出。
阅读全文