def load_npz(self, name='ECG200', target=None):
     data, label = load_npz(name)
     if not target:
         inx = range(len(data))
     else:
         inx = label == target
     dataset = Data.TensorDataset(
         torch.tensor(data[inx], dtype=torch.float32),
         torch.tensor(label[inx], dtype=torch.long))
     return dataset
Exemplo n.º 2
0
    x_gen = []
    y_gen = []
    [m.eval() for m in model.models.values()]
    for i in LABELS:
        path = './ckpt/model_{:d}.pkl'.format(i)
        model.load_model(path)
        noise = model.gen_noise(0, 1, (NUM, LATENT_DIM))
        x = model.generator(noise)
        x = x.data.cpu().numpy().reshape(x.size(0), -1)
        y = np.zeros(NUM) + i
        x_gen.append(x)
        y_gen.append(y)
    x_gen = np.concatenate(x_gen)
    y_gen = np.concatenate(y_gen)

    data, label = load_npz()
    (x_train, y_train), (x_test, y_test) = load_data()

    clf_model = KNeighborsClassifier(n_neighbors=1)
    clf_model.fit(x_train, y_train)
    pred_data = clf_model.predict(data)
    pred_test = clf_model.predict(x_test)
    pred_gen = clf_model.predict(x_gen)
    classify_analysis(label, pred_data, labels=LABELS)
    classify_analysis(y_test, pred_test, labels=LABELS)
    classify_analysis(y_gen, pred_gen, labels=LABELS)
    print('-' * 20 + 'TSTR' + '-' * 20)
    clf_model.fit(x_gen, y_gen)
    pred_data = clf_model.predict(data)
    pred_test = clf_model.predict(x_test)
    pred_gen = clf_model.predict(x_gen)
        x_gen = []
        y_gen = []
        [m.eval() for m in model.models.values()]
        for i in LABELS:
            path = './ckpt/model_{:d}.pkl'.format(i)
            model.load_model(path)
            noise = model.gen_noise(0, 1, (NUM, TIME_STEP, LATENT_DIM))
            x = model.generator(noise)
            x = x.data.cpu().numpy().reshape(x.size(0), -1)
            y = np.zeros(NUM) + i
            x_gen.append(x)
            y_gen.append(y)
        x_gen = np.concatenate(x_gen)
        y_gen = np.concatenate(y_gen)

        data, label = load_npz(NAME)
        (x_train, y_train), (x_test, y_test) = load_data(NAME)

        clf_model = KNeighborsClassifier(n_neighbors=1)

        clf_model.fit(x_train, y_train)
        pred_data = clf_model.predict(data)
        pred_test = clf_model.predict(x_test)
        pred_gen = clf_model.predict(x_gen)
        classify_analysis(label, pred_data, labels=LABELS)
        classify_analysis(y_test, pred_test, labels=LABELS)
        classify_analysis(y_gen, pred_gen, labels=LABELS)
        print('-' * 20 + 'TSTR' + '-' * 20)
        clf_model.fit(x_gen, y_gen)
        pred_data = clf_model.predict(data)
        pred_test = clf_model.predict(x_test)
Exemplo n.º 4
0
def load_data(name='ECG200', test_size=0.4):
    data, label = load_npz(name)
    x_train, x_test, y_train, y_test = \
        train_test_split(data, label, test_size=test_size)
    return (x_train, y_train), (x_test, y_test)