Python 实现带 ReLU 激活函数的神经网络
当然可以,以下是一个简单的带有 ReLU 激活函数的神经网络实现:
import numpy as np
class NeuralNetwork:
def __init__(self, layers, activation='relu'):
self.layers = layers
self.activation = activation
if activation == 'relu':
self.activation_func = self.relu
self.activation_derivative = self.relu_derivative
self.weights = [np.random.randn(layers[i], layers[i+1]) for i in range(len(layers)-1)]
self.biases = [np.random.randn(1, layers[i+1]) for i in range(len(layers)-1)]
def relu(self, x):
return np.maximum(0, x)
def relu_derivative(self, x):
x[x<=0] = 0
x[x>0] = 1
return x
def feedforward(self, x):
a = x
for i in range(len(self.layers)-1):
z = np.dot(a, self.weights[i]) + self.biases[i]
a = self.activation_func(z)
return a
在这个实现中,我们首先定义了一个名为NeuralNetwork的类,该类包含了神经网络的一些基本属性和方法。在初始化函数中,我们定义了神经网络的层数和激活函数类型,然后根据层数随机初始化了每一层的权重和偏置。在这里,我们使用了ReLU作为激活函数,并定义了相应的ReLU函数和其导数函数。
接下来,我们定义了feedforward函数,该函数接受一个输入向量x,并通过神经网络进行前向传播,最终输出网络的预测结果。在这个函数中,我们首先将输入向量x赋值给变量a,然后依次对每一层进行计算。对于每一层,我们首先将输入向量与权重矩阵相乘,然后加上该层的偏置向量,最后使用激活函数对结果进行非线性变换。最后一层的输出即为网络的预测结果。
这只是一个简单的神经网络实现,你可以根据自己的需求进行扩展和改进。
原文地址: https://www.cveoy.top/t/topic/mjUL 著作权归作者所有。请勿转载和采集!