Source code for numpynet.layers.base

[docs] class Layer: def __init__(self, trainable=True, name=None): self.trainable = trainable self.name = name self._built = False
[docs] def build(self, input_shape): self._built = True
[docs] def forward(self, x, training=False): raise NotImplementedError
[docs] def backward(self, grad): raise NotImplementedError
def __call__(self, x, training=False): return self.forward(x, training=training) @property def params(self): return {} @property def grads(self): return {}
[docs] def get_config(self): return {"name": self.name, "trainable": self.trainable}
[docs] def count_params(self): total = 0 for p in self.params.values(): total += p.size return total