当然可以,以下是一个简单的带有 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,然后依次对每一层进行计算。对于每一层,我们首先将输入向量与权重矩阵相乘,然后加上该层的偏置向量,最后使用激活函数对结果进行非线性变换。最后一层的输出即为网络的预测结果。

这只是一个简单的神经网络实现,你可以根据自己的需求进行扩展和改进。

Python 实现带 ReLU 激活函数的神经网络

原文地址: https://www.cveoy.top/t/topic/mjUL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录