Browse Source

New translations spectral_decomposition.py (French)

l10n_v0.2.x
linlin 4 years ago
parent
commit
c94a9cfc71
1 changed files with 23 additions and 23 deletions
  1. +23
    -23
      lang/fr/gklearn/kernels/spectral_decomposition.py

+ 23
- 23
lang/fr/gklearn/kernels/spectral_decomposition.py View File

@@ -16,19 +16,19 @@ import numpy as np
import networkx as nx import networkx as nx
from scipy.sparse import kron from scipy.sparse import kron
from gklearn.utils.parallel import parallel_gm, parallel_me from gklearn.utils.parallel import parallel_gm, parallel_me
from gklearn.kernels import RandomWalk
from gklearn.kernels import RandomWalkMeta




class SpectralDecomposition(RandomWalk):
class SpectralDecomposition(RandomWalkMeta):
def __init__(self, **kwargs): def __init__(self, **kwargs):
RandomWalk.__init__(self, **kwargs)
super().__init__(**kwargs)
self._sub_kernel = kwargs.get('sub_kernel', None) self._sub_kernel = kwargs.get('sub_kernel', None)


def _compute_gm_series(self): def _compute_gm_series(self):
self._check_edge_weight(self._graphs)
self._check_edge_weight(self._graphs, self._verbose)
self._check_graphs(self._graphs) self._check_graphs(self._graphs)
if self._verbose >= 2: if self._verbose >= 2:
import warnings import warnings
@@ -37,7 +37,7 @@ class SpectralDecomposition(RandomWalk):
# compute Gram matrix. # compute Gram matrix.
gram_matrix = np.zeros((len(self._graphs), len(self._graphs))) gram_matrix = np.zeros((len(self._graphs), len(self._graphs)))
if self._q == None:
if self._q is None:
# precompute the spectral decomposition of each graph. # precompute the spectral decomposition of each graph.
P_list = [] P_list = []
D_list = [] D_list = []
@@ -54,14 +54,14 @@ class SpectralDecomposition(RandomWalk):
P_list.append(ev) P_list.append(ev)
# P_inv_list = [p.T for p in P_list] # @todo: also works for directed graphs? # P_inv_list = [p.T for p in P_list] # @todo: also works for directed graphs?


if self._p == None: # p is uniform distribution as default.
if self._p is None: # p is uniform distribution as default.
q_T_list = [np.full((1, nx.number_of_nodes(G)), 1 / nx.number_of_nodes(G)) for G in self._graphs] q_T_list = [np.full((1, nx.number_of_nodes(G)), 1 / nx.number_of_nodes(G)) for G in self._graphs]
# q_T_list = [q.T for q in q_list] # q_T_list = [q.T for q in q_list]


from itertools import combinations_with_replacement from itertools import combinations_with_replacement
itr = combinations_with_replacement(range(0, len(self._graphs)), 2) itr = combinations_with_replacement(range(0, len(self._graphs)), 2)
if self._verbose >= 2: if self._verbose >= 2:
iterator = tqdm(itr, desc='calculating kernels', file=sys.stdout)
iterator = tqdm(itr, desc='Computing kernels', file=sys.stdout)
else: else:
iterator = itr iterator = itr
@@ -79,7 +79,7 @@ class SpectralDecomposition(RandomWalk):
def _compute_gm_imap_unordered(self): def _compute_gm_imap_unordered(self):
self._check_edge_weight(self._graphs)
self._check_edge_weight(self._graphs, self._verbose)
self._check_graphs(self._graphs) self._check_graphs(self._graphs)
if self._verbose >= 2: if self._verbose >= 2:
import warnings import warnings
@@ -88,7 +88,7 @@ class SpectralDecomposition(RandomWalk):
# compute Gram matrix. # compute Gram matrix.
gram_matrix = np.zeros((len(self._graphs), len(self._graphs))) gram_matrix = np.zeros((len(self._graphs), len(self._graphs)))
if self._q == None:
if self._q is None:
# precompute the spectral decomposition of each graph. # precompute the spectral decomposition of each graph.
P_list = [] P_list = []
D_list = [] D_list = []
@@ -104,7 +104,7 @@ class SpectralDecomposition(RandomWalk):
D_list.append(ew) D_list.append(ew)
P_list.append(ev) # @todo: parallel? P_list.append(ev) # @todo: parallel?


if self._p == None: # p is uniform distribution as default.
if self._p is None: # p is uniform distribution as default.
q_T_list = [np.full((1, nx.number_of_nodes(G)), 1 / nx.number_of_nodes(G)) for G in self._graphs] # @todo: parallel? q_T_list = [np.full((1, nx.number_of_nodes(G)), 1 / nx.number_of_nodes(G)) for G in self._graphs] # @todo: parallel?
def init_worker(q_T_list_toshare, P_list_toshare, D_list_toshare): def init_worker(q_T_list_toshare, P_list_toshare, D_list_toshare):
@@ -126,7 +126,7 @@ class SpectralDecomposition(RandomWalk):
def _compute_kernel_list_series(self, g1, g_list): def _compute_kernel_list_series(self, g1, g_list):
self._check_edge_weight(g_list + [g1])
self._check_edge_weight(g_list + [g1], self._verbose)
self._check_graphs(g_list + [g1]) self._check_graphs(g_list + [g1])
if self._verbose >= 2: if self._verbose >= 2:
import warnings import warnings
@@ -135,16 +135,16 @@ class SpectralDecomposition(RandomWalk):
# compute kernel list. # compute kernel list.
kernel_list = [None] * len(g_list) kernel_list = [None] * len(g_list)
if self._q == None:
if self._q is None:
# precompute the spectral decomposition of each graph. # precompute the spectral decomposition of each graph.
A1 = nx.adjacency_matrix(g1, self._edge_weight).todense().transpose() A1 = nx.adjacency_matrix(g1, self._edge_weight).todense().transpose()
D1, P1 = np.linalg.eig(A1) D1, P1 = np.linalg.eig(A1)
P_list = [] P_list = []
D_list = [] D_list = []
if self._verbose >= 2: if self._verbose >= 2:
iterator = tqdm(range(len(g_list)), desc='spectral decompose', file=sys.stdout)
iterator = tqdm(g_list, desc='spectral decompose', file=sys.stdout)
else: else:
iterator = range(len(g_list))
iterator = g_list
for G in iterator: for G in iterator:
# don't normalize adjacency matrices if q is a uniform vector. Note # don't normalize adjacency matrices if q is a uniform vector. Note
# A actually is the transpose of the adjacency matrix. # A actually is the transpose of the adjacency matrix.
@@ -153,11 +153,11 @@ class SpectralDecomposition(RandomWalk):
D_list.append(ew) D_list.append(ew)
P_list.append(ev) P_list.append(ev)


if self._p == None: # p is uniform distribution as default.
if self._p is None: # p is uniform distribution as default.
q_T1 = 1 / nx.number_of_nodes(g1) q_T1 = 1 / nx.number_of_nodes(g1)
q_T_list = [np.full((1, nx.number_of_nodes(G)), 1 / nx.number_of_nodes(G)) for G in g_list] q_T_list = [np.full((1, nx.number_of_nodes(G)), 1 / nx.number_of_nodes(G)) for G in g_list]
if self._verbose >= 2: if self._verbose >= 2:
iterator = tqdm(range(len(g_list)), desc='calculating kernels', file=sys.stdout)
iterator = tqdm(range(len(g_list)), desc='Computing kernels', file=sys.stdout)
else: else:
iterator = range(len(g_list)) iterator = range(len(g_list))
@@ -174,7 +174,7 @@ class SpectralDecomposition(RandomWalk):
def _compute_kernel_list_imap_unordered(self, g1, g_list): def _compute_kernel_list_imap_unordered(self, g1, g_list):
self._check_edge_weight(g_list + [g1])
self._check_edge_weight(g_list + [g1], self._verbose)
self._check_graphs(g_list + [g1]) self._check_graphs(g_list + [g1])
if self._verbose >= 2: if self._verbose >= 2:
import warnings import warnings
@@ -183,7 +183,7 @@ class SpectralDecomposition(RandomWalk):
# compute kernel list. # compute kernel list.
kernel_list = [None] * len(g_list) kernel_list = [None] * len(g_list)
if self._q == None:
if self._q is None:
# precompute the spectral decomposition of each graph. # precompute the spectral decomposition of each graph.
A1 = nx.adjacency_matrix(g1, self._edge_weight).todense().transpose() A1 = nx.adjacency_matrix(g1, self._edge_weight).todense().transpose()
D1, P1 = np.linalg.eig(A1) D1, P1 = np.linalg.eig(A1)
@@ -201,7 +201,7 @@ class SpectralDecomposition(RandomWalk):
D_list.append(ew) D_list.append(ew)
P_list.append(ev) # @todo: parallel? P_list.append(ev) # @todo: parallel?


if self._p == None: # p is uniform distribution as default.
if self._p is None: # p is uniform distribution as default.
q_T1 = 1 / nx.number_of_nodes(g1) q_T1 = 1 / nx.number_of_nodes(g1)
q_T_list = [np.full((1, nx.number_of_nodes(G)), 1 / nx.number_of_nodes(G)) for G in g_list] # @todo: parallel? q_T_list = [np.full((1, nx.number_of_nodes(G)), 1 / nx.number_of_nodes(G)) for G in g_list] # @todo: parallel?
@@ -221,7 +221,7 @@ class SpectralDecomposition(RandomWalk):
itr = range(len(g_list)) itr = range(len(g_list))
len_itr = len(g_list) len_itr = len(g_list)
parallel_me(do_fun, func_assign, kernel_list, itr, len_itr=len_itr, parallel_me(do_fun, func_assign, kernel_list, itr, len_itr=len_itr,
init_worker=init_worker, glbv=(q_T1, P1, D1, q_T_list, P_list, D_list), method='imap_unordered', n_jobs=self._n_jobs, itr_desc='calculating kernels', verbose=self._verbose)
init_worker=init_worker, glbv=(q_T1, P1, D1, q_T_list, P_list, D_list), method='imap_unordered', n_jobs=self._n_jobs, itr_desc='Computing kernels', verbose=self._verbose)
else: # @todo else: # @todo
pass pass
@@ -236,20 +236,20 @@ class SpectralDecomposition(RandomWalk):
def _compute_single_kernel_series(self, g1, g2): def _compute_single_kernel_series(self, g1, g2):
self._check_edge_weight([g1] + [g2])
self._check_edge_weight([g1] + [g2], self._verbose)
self._check_graphs([g1] + [g2]) self._check_graphs([g1] + [g2])
if self._verbose >= 2: if self._verbose >= 2:
import warnings import warnings
warnings.warn('All labels are ignored. Only works for undirected graphs.') warnings.warn('All labels are ignored. Only works for undirected graphs.')
if self._q == None:
if self._q is None:
# precompute the spectral decomposition of each graph. # precompute the spectral decomposition of each graph.
A1 = nx.adjacency_matrix(g1, self._edge_weight).todense().transpose() A1 = nx.adjacency_matrix(g1, self._edge_weight).todense().transpose()
D1, P1 = np.linalg.eig(A1) D1, P1 = np.linalg.eig(A1)
A2 = nx.adjacency_matrix(g2, self._edge_weight).todense().transpose() A2 = nx.adjacency_matrix(g2, self._edge_weight).todense().transpose()
D2, P2 = np.linalg.eig(A2) D2, P2 = np.linalg.eig(A2)


if self._p == None: # p is uniform distribution as default.
if self._p is None: # p is uniform distribution as default.
q_T1 = 1 / nx.number_of_nodes(g1) q_T1 = 1 / nx.number_of_nodes(g1)
q_T2 = 1 / nx.number_of_nodes(g2) q_T2 = 1 / nx.number_of_nodes(g2)
kernel = self.__kernel_do(q_T1, q_T2, P1, P2, D1, D2, self._weight, self._sub_kernel) kernel = self.__kernel_do(q_T1, q_T2, P1, P2, D1, D2, self._weight, self._sub_kernel)


Loading…
Cancel
Save