class Initializer:
""" Base class for initializers. """
def initialize(self, weight_shape):
""" Return weights initialized according to the subclass definition.
Required to work for arbitrary weight shapes.
Base class.
"""
# Raises an exeption in base class.
raise NotImplementedError('Method is not implemented')
class Const(Initializer):
def __init__(self, value):
""" Create a constant initializer.
params: value (float): constant that is used for initialization of weights
"""
# TODO: Implement
pass
def initialize(self, weight_shape):
""" Return a new array of weights initialized with a constant value provided by self.value.
param: weight_shape: shape of the new array
returns (np.ndarray): array of the given shape
"""
# TODO: Implement
pass
class UniformRandom(Initializer):
def initialize(self, weight_shape):
""" Return a new array of weights initialized by drawing from a uniform distribution with range [0, 1].
param: weight_shape: shape of new array
returns (np.ndarray): array of the given shape
"""
# TODO: Implement
pass
I assume that is what you're interested in.
You may implement this or you could just use two simple functions for returning a numpy array filled up with the same value (for Const init), or values generated by calling one of the built-in numpy random functions (for Uniform init).
Please don't hesitate to ask further questions.