Beispiel #1
0
    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))
Beispiel #2
0
    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))
Beispiel #3
0
    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))
Beispiel #4
0
    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)
Beispiel #5
0
    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))
Beispiel #6
0
    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)
Beispiel #7
0
    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))