def __init__(self, layers, optimizer, loss, max_epochs=10, batch_size=64, metric='mse', shuffle=False, verbose=True): self.verbose = verbose self.shuffle = shuffle self.optimizer = optimizer self.loss = get_loss(loss) # TODO: fix if loss == 'categorical_crossentropy': self.loss_grad = lambda actual, predicted: -(actual - predicted) else: self.loss_grad = elementwise_grad(self.loss, 1) self.metric = get_metric(metric) self.layers = layers self.batch_size = batch_size self.max_epochs = max_epochs self._n_layers = 0 self.log_metric = True if loss != metric else False self.metric_name = metric self.bprop_entry = self._find_bprop_entry() self.training = False self._initialized = False