38 using namespace shogun;
48 int32_t input_width, int32_t input_height,
49 int32_t radius_x, int32_t radius_y,
50 int32_t pooling_width, int32_t pooling_height,
97 int32_t num_parameters_per_map =
103 bool* map_param_regularizable =
104 parameter_regularizable.
vector+m*num_parameters_per_map;
106 for (int32_t i=0; i<num_parameters_per_map; i++)
120 int32_t num_parameters_per_map =
126 parameters.
vector+m*num_parameters_per_map,
127 num_parameters_per_map,
false);
149 for (int32_t i=0; i<len; i++)
160 int32_t num_parameters_per_map =
166 parameters.
vector+m*num_parameters_per_map,
167 num_parameters_per_map,
false);
170 parameter_gradients.
vector+m*num_parameters_per_map,
171 num_parameters_per_map,
false);
189 int32_t num_parameters_per_map = num_biases + num_weights;
193 float64_t* weights = parameters.
vector+m*num_parameters_per_map+num_biases;
201 for (int32_t i=0; i<num_weights; i++)
202 weights[i] *= multiplier;
207 void CNeuralConvolutionalLayer::init()
CNeuralConvolutionalLayer()
double norm(double *v, double p, int n)
virtual void initialize(CDynamicObjectArray *layers, SGVector< int32_t > input_indices)
virtual void initialize(CDynamicObjectArray *layers, SGVector< int32_t > input_indices)
EConvMapActivationFunction m_activation_function
virtual void compute_activations(SGVector< float64_t > parameters, CDynamicObjectArray *layers)
static float32_t normal_random(float32_t mean, float32_t std_dev)
virtual void set_batch_size(int32_t batch_size)
SGMatrix< float64_t > m_activations
virtual void enforce_max_norm(SGVector< float64_t > parameters, float64_t max_norm)
SGMatrix< float64_t > m_convolution_output_gradients
virtual void compute_gradients(SGVector< float64_t > parameters, SGMatrix< float64_t > targets, CDynamicObjectArray *layers, SGVector< float64_t > parameter_gradients)
SGMatrix< float64_t > m_buffer
SGVector< int32_t > m_input_indices
Base class for neural network layers.
SGMatrix< float64_t > m_activation_gradients
void compute_activations(SGVector< float64_t > parameters, CDynamicObjectArray *layers, SGVector< int32_t > input_indices, SGMatrix< float64_t > activations, SGMatrix< float64_t > buffer)
Handles convolution and gradient calculation for a single feature map in a convolutional neural netwo...
virtual void initialize_parameters(SGVector< float64_t > parameters, SGVector< bool > parameter_regularizable, float64_t sigma)
Dynamic array class for CSGObject pointers that creates an array that can be used like a list or an a...
virtual void set_batch_size(int32_t batch_size)
SGMatrix< float64_t > m_max_indices
EConvMapActivationFunction
Determines the activation function for neurons in a convolutional feature map.
SGMatrix< float64_t > m_convolution_output
void compute_gradients(SGVector< float64_t > parameters, SGMatrix< float64_t > activations, SGMatrix< float64_t > activation_gradients, CDynamicObjectArray *layers, SGVector< int32_t > input_indices, SGVector< float64_t > parameter_gradients)
SGMatrix< bool > m_dropout_mask
void pool_activations(SGMatrix< float64_t > activations, int32_t pooling_width, int32_t pooling_height, SGMatrix< float64_t > pooled_activations, SGMatrix< float64_t > max_indices)
static T twonorm(const T *x, int32_t len)
|| x ||_2