| import mat73
|
| import numpy as np
|
| import scipy.io as sio
|
| import torch
|
| import random
|
| from torch.utils.data import Dataset, DataLoader
|
| from utils import *
|
| def get_pairs(E_X, E_Y, neg_prop, train_label):
|
| view0, view1, labels, real_labels, class_labels0, class_labels1 = [], [], [], [], [], []
|
|
|
| for i in range(len(E_X)):
|
| view0.append(E_X[i])
|
| view1.append(E_Y[i])
|
| labels.append(1)
|
| real_labels.append(1)
|
| class_labels0.append(train_label[i])
|
| class_labels1.append(train_label[i])
|
|
|
|
|
| for j in range(len(E_X)):
|
| neg_idx = random.sample(range(len(E_Y)), neg_prop)
|
| for k in range(neg_prop):
|
| view0.append(E_X[j])
|
| view1.append(E_Y[neg_idx[k]])
|
| labels.append(0)
|
| class_labels0.append(train_label[j])
|
| class_labels1.append(train_label[neg_idx[k]])
|
| if train_label[j] != train_label[neg_idx[k]]:
|
| real_labels.append(0)
|
| else:
|
| real_labels.append(1)
|
|
|
| labels = np.array(labels, dtype=np.int64)
|
| real_labels = np.array(real_labels, dtype=np.int64)
|
| class_labels0, class_labels1 = np.array(class_labels0, dtype=np.int64), np.array(class_labels1, dtype=np.int64)
|
| view0, view1 = np.array(view0, dtype=np.float32), np.array(view1, dtype=np.float32)
|
| return view0, view1, labels, real_labels, class_labels0, class_labels1
|
|
|