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