예제 #1
0
 def check_loss(self, X, Y, Ws=[]):
     """Check loss at output layer for observations X/Y."""
     if (len(Ws) == 0):
         Ws = self.layer_weights()
     obs_count = X.shape[0]
     M = self.get_drop_masks(obs_count, 0, 0)
     A = self.feedforward(X, M)
     O = self.out_loss(A[-1], Y)
     Yc = lnf.class_cats(Y)
     Yhc = lnf.class_cats(A[-1])
     hits = sum([(int(a) == int(b)) for (a, b) in zip(Yhc, Yc)])
     acc = float(hits) / float(obs_count)
     return {'loss': O['L'], 'acc': acc, 'grad': O['dL']}
예제 #2
0
    def check_acc(self, X, Y, Ws=[]):
        """Check classification accuracy using inputs X with classes Y.

        Classes should be represented in Y as a +/- 1 indicator matrix.
        """
        if (len(Ws) == 0):
            Ws = self.layer_weights()
        obs_count = X.shape[0]
        Yc = lnf.class_cats(Y)
        M = self.get_drop_masks(obs_count, 0, 0)
        A = self.feedforward(X, M, Ws)
        Yh = A[-1]
        Yhc = lnf.class_cats(Yh)
        hits = sum([(int(a) == int(b)) for (a, b) in zip(Yhc, Yc)])
        return (float(hits) / float(obs_count))