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.