def __init__(self, input_dim, output_dim, weights_initialiser=init.UniformInit(-0.1, 0.1), biases_initialiser=init.ConstantInit(0.), weights_penalty=None, biases_penalty=None): """Initialises a parameterised affine layer. Args: input_dim (int): Dimension of inputs to the layer. output_dim (int): Dimension of the layer outputs. weights_initialiser: Initialiser for the weight parameters. biases_initialiser: Initialiser for the bias parameters. weights_penalty: Weights-dependent penalty term (regulariser) or None if no regularisation is to be applied to the weights. biases_penalty: Biases-dependent penalty term (regulariser) or None if no regularisation is to be applied to the biases. """ self.input_dim = input_dim self.output_dim = output_dim self.weights = weights_initialiser((self.output_dim, self.input_dim)) self.biases = biases_initialiser(self.output_dim) self.weights_penalty = weights_penalty self.biases_penalty = biases_penalty
def __init__(self, num_input_channels, num_output_channels, input_dim_1, input_dim_2, kernel_dim_1, kernel_dim_2, stride=1, kernels_init=init.UniformInit(-0.01, 0.01), biases_init=init.ConstantInit(0.), kernels_penalty=None, biases_penalty=None): """Initialises a parameterised convolutional layer. Args: num_input_channels (int): Number of channels in inputs to layer (this may be number of colour channels in the input images if used as the first layer in a model, or the number of output channels, a.k.a. feature maps, from a a previous convolutional layer). num_output_channels (int): Number of channels in outputs from the layer, a.k.a. number of feature maps. input_dim_1 (int): Size of first input dimension of each 2D channel of inputs. input_dim_2 (int): Size of second input dimension of each 2D channel of inputs. kernel_dim_x (int): Size of first dimension of each 2D channel of kernels. kernel_dim_y (int): Size of second dimension of each 2D channel of kernels. kernels_intialiser: Initialiser for the kernel parameters. biases_initialiser: Initialiser for the bias parameters. kernels_penalty: Kernel-dependent penalty term (regulariser) or None if no regularisation is to be applied to the kernels. biases_penalty: Biases-dependent penalty term (regulariser) or None if no regularisation is to be applied to the biases. """ self.num_input_channels = num_input_channels self.num_output_channels = num_output_channels self.input_dim_1 = input_dim_1 self.input_dim_2 = input_dim_2 self.kernel_dim_1 = kernel_dim_1 self.kernel_dim_2 = kernel_dim_2 self.output_dim_1 = self.input_dim_1 - self.kernel_dim_1 + 1 self.output_dim_2 = self.input_dim_2 - self.kernel_dim_2 + 1 self.stride = stride self.kernels_init = kernels_init self.biases_init = biases_init self.kernels_shape = (num_output_channels, num_input_channels, kernel_dim_1, kernel_dim_2) self.inputs_shape = (None, num_input_channels, input_dim_1, input_dim_2) self.kernels = self.kernels_init(self.kernels_shape) self.biases = self.biases_init(num_output_channels) self.kernels_penalty = kernels_penalty self.biases_penalty = biases_penalty
def __init__(self, input_dim, output_dim, weights_initialiser=init.UniformInit(-0.1, 0.1), biases_initialiser=init.ConstantInit(0.)): """Initialises a parameterised affine layer. Args: input_dim (int): Dimension of inputs to the layer. output_dim (int): Dimension of the layer outputs. weights_initialiser: Initialiser for the weight parameters. biases_initialiser: Initialiser for the bias parameters. """ self.input_dim = input_dim self.output_dim = output_dim self.weights = weights_initialiser((self.output_dim, self.input_dim)) self.biases = biases_initialiser(self.output_dim)