|
- import numpy as np
-
- from neural_net.activation_layers.activation_layer import ActivationLayer
- from neural_net.functions.activation import relu_activation, relu_derivative_activation
-
-
- class ReluLayer(ActivationLayer):
- def __init__(self, index, input_dim, output_dim, weights=None, biases=None):
- super().__init__(index, input_dim, output_dim, weights, biases)
- self.subtype = 'RELU'
-
- def initialize_weights(self):
- # He initialization (input_dim x output_dim)
- self.weights = np.random.randn(self.input_dim, self.output_dim) * np.sqrt(2.0 / self.input_dim)
-
- def initialize_biases(self):
- self.biases = np.zeros((1, self.output_dim)) # Biases initialized to zero
-
- def activation(self, outputs: np.array):
- return relu_activation(outputs)
-
- def activation_derivative(self, outputs: np.array):
- return relu_derivative_activation(outputs)
|