Beispiel #1
0
def LogME(f: tf.Tensor, y: tf.Tensor, regression=False):
    f = f.numpy().astype(np.float64)
    y = y.numpy()
    if regression:
        y = y.numpy().astype(np.float64)

    fh = f
    f = f.transpose()
    D, N = f.shape
    v, s, vh = np.linalg.svd(f @ fh, full_matrices=True)

    evidences = []
    if regression:
        K = y.shape[1]
        for i in range(K):
            y_ = y[:, i]
            evidence = each_evidence(y_, f, fh, v, s, vh, N, D)
            evidences.append(evidence)
    else:
        K = int(y.max() + 1)
        for i in range(K):
            y_ = (y == i).astype(np.float64)
            evidence = each_evidence(y_, f, fh, v, s, vh, N, D)
            evidences.append(evidence)
    return np.mean(evidences)
 def predictions_to_classes(self,
                            predictions: tf.Tensor,
                            best=True) -> pd.DataFrame:
     if best:
         return pd.DataFrame({
             "class_id": predictions.argmax(-1),
             "score": predictions.max(-1)
         }).assign(
             label=lambda df: df.class_id.map(self.id_to_label.__getitem__))
     return pd.DataFrame(predictions, columns=self.id_to_label)