def test_gatedlayer_deltas_finite_differences(self): t = 7 b = 5 check_errors = [] for act_func in ["sigmoid", "relu"]: net = self.build_gatedlayer_network(3, act_func) e, grad_calc, grad_approx = check_deltas(net, n_batches=b, n_timesteps=t, rnd=rnd) check_errors.append(e) if e > 1e-4: diff = (grad_approx - grad_calc).reshape(t, b, -1) for t in range(diff.shape[0]): print("======== t=%d =========" % t) print(diff[t]) # print("Checking Deltas of %s with %s = %0.4f" % (l(3), a, e)) self.assertTrue(np.all(np.array(check_errors) < 1e-4))
def test_deltas_finite_differences(self): t = 7 b = 5 check_errors = [] for l, a in itertools.product(self.layer_types, self.activation_functions): net = self.build_network(l, a) e, grad_calc, grad_approx = check_deltas(net, n_batches=b, n_timesteps=t, rnd=rnd) check_errors.append(e) if e > 1e-4: diff = (grad_approx - grad_calc).reshape(t, b, -1) for t in range(diff.shape[0]): print("======== t=%d =========" % t) print(diff[t]) print("Checking Deltas of %s with %s = %0.4f" % (l(3), a, e)) self.assertTrue(np.all(np.array(check_errors) < 1e-4))
def test_deltas_finite_differences(self): t = 7 b = 5 check_errors = [] for cfg in self.lstm_configs: net = self.build_network(cfg) e, grad_calc, grad_approx = check_deltas(net, n_batches=b, n_timesteps=t, rnd=rnd) check_errors.append(e) if e > 1e-6: diff = (grad_approx - grad_calc).reshape(t, b, -1) for t in range(diff.shape[0]): print("======== t=%d =========" % t) print(diff[t]) print("Checking Deltas of Lstm97 with %s = %0.6f" % (cfg, e)) self.assertTrue(np.all(np.array(check_errors) < 1e-6))
def test_deltas_finite_differences(self): e, grad_calc, grad_approx = check_deltas(self.net, n_batches=self.batch_size, n_timesteps=self.timesteps, rnd=rnd) grad_approx = grad_approx.reshape(self.timesteps, self.batch_size, -1) grad_calc = grad_calc.reshape(self.timesteps, self.batch_size, -1) diff = (grad_approx - grad_calc) for t in range(diff.shape[0]): print("======== t=%d =========" % t) print("calc") print(grad_calc[t]) print("approx") print(grad_approx[t]) print("diff") print(diff[t]) print(np.sum(diff[t]**2)) print("Checking Deltas of ClockworkLayer with sigmoid = %0.4f" % e) self.assertTrue(e < 1e-6)
def test_staticlstm_deltas_finite_differences(self): t = 7 b = 5 check_errors = [] net = self.build_staticlstm_network(3, 'sigmoid') e, grad_calc, grad_approx = check_deltas(net, n_batches=b, n_timesteps=t, rnd=rnd) check_errors.append(e) if e > 1e-4: diff = (grad_approx - grad_calc).reshape(t, b, -1) for t in range(diff.shape[0]): print("======== t=%d =========" % t) print(diff[t]) # print("Checking Deltas of %s with %s = %0.4f" % (l(3), a, e)) self.assertTrue(np.all(np.array(check_errors) < 1e-4))