#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Sun Dec 23 16:40:52 2018 @author: ljia """ import sys import numpy as np import networkx as nx sys.path.insert(0, "../") from gklearn.utils.graphfiles import loadDataset from gklearn.utils.model_selection_precomputed import compute_gram_matrices from gklearn.kernels.spKernel import spkernel from sklearn.model_selection import ParameterGrid from libs import * import multiprocessing import functools from gklearn.utils.kernels import deltakernel, gaussiankernel, kernelproduct if __name__ == "__main__": # load dataset. print('getting dataset and computing kernel distance matrix first...') ds_name = 'SYNTHETICnew' gkernel = 'spkernel' dataset = '../datasets/SYNTHETICnew/SYNTHETICnew_A.txt' Gn, y_all = loadDataset(dataset) for G in Gn: G.graph['filename'] = 'graph' + str(G.graph['name']) + '.gxl' # compute/read Gram matrix and pair distances. mixkernel = functools.partial(kernelproduct, deltakernel, gaussiankernel) Kmatrix = np.empty((len(Gn), len(Gn))) Kmatrix, run_time, idx = spkernel(Gn, node_label=None, node_kernels= {'symb': deltakernel, 'nsymb': gaussiankernel, 'mix': mixkernel}, n_jobs=multiprocessing.cpu_count(), verbose=True) # normalization Kmatrix_diag = Kmatrix.diagonal().copy() for i in range(len(Kmatrix)): for j in range(i, len(Kmatrix)): Kmatrix[i][j] /= np.sqrt(Kmatrix_diag[i] * Kmatrix_diag[j]) Kmatrix[j][i] = Kmatrix[i][j] np.savez('results/xp_fit_method/Kmatrix.' + ds_name + '.' + gkernel + '.gm', Kmatrix=Kmatrix, run_time=run_time) print('complete!')