def test_apply_once(self): x = np.arange(3 * 4 * 5).reshape((3, 4, 5)) np.testing.assert_array_almost_equal(dd.apply_once(np.std, x, [0, -1]), 16.39105447 * np.ones((1, 4, 1))) x = np.arange(2 * 3).reshape((2, 3)) np.testing.assert_array_equal( dd.apply_once(np.sum, x, 1, keepdims=False), np.array([3, 12]))
def test_apply_once(self): x = np.arange(3 * 4 * 5).reshape((3, 4, 5)) np.testing.assert_array_almost_equal(dd.apply_once(np.std, x, [0, -1]), 16.39105447 * np.ones((1, 4, 1))) x = np.arange(2 * 3).reshape((2, 3)) np.testing.assert_array_equal(dd.apply_once(np.sum, x, 1, keepdims=False), np.array([3, 12]))
def predict_proba(self, X): X = X.reshape(-1, 3, 32, 32) #X = X.transpose(0, 2, 3, 1) prob = np.zeros((X.shape[0], self.n_classes_)) M = 2500 for k in range(int(np.ceil(X.shape[0] / M))): y = self.net_.forward_all(data=X[k * M:(k + 1) * M]).values()[0].squeeze(axis=(2, 3)) prob[k * M:(k + 1) * M] = y T = 30.0 eps = 0.0001 #prob = prob.clip(eps, 1-eps) log_prob = np.log(prob) print('log_prob', log_prob.min(), log_prob.max()) #log_prob = log_prob.clip(min=-4, max=4) new_prob = np.exp(log_prob / T) new_prob /= dd.apply_once(np.sum, new_prob, [1]) return new_prob
def predict_proba(self, X): X = X.reshape(-1, 3, 32, 32) # X = X.transpose(0, 2, 3, 1) prob = np.zeros((X.shape[0], self.n_classes_)) M = 2500 for k in range(int(np.ceil(X.shape[0] / M))): y = self.net_.forward_all(data=X[k * M : (k + 1) * M]).values()[0].squeeze(axis=(2, 3)) prob[k * M : (k + 1) * M] = y T = 30.0 eps = 0.0001 # prob = prob.clip(eps, 1-eps) log_prob = np.log(prob) print("log_prob", log_prob.min(), log_prob.max()) # log_prob = log_prob.clip(min=-4, max=4) new_prob = np.exp(log_prob / T) new_prob /= dd.apply_once(np.sum, new_prob, [1]) return new_prob
def temperature(y, T): y = y**(1 / T) return y / dd.apply_once(np.sum, y, [1])