You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

test_median_preimage_generator.py 1.9 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. Created on Fri Mar 27 17:30:55 2020
  5. @author: ljia
  6. """
  7. import multiprocessing
  8. import functools
  9. from gklearn.utils.kernels import deltakernel, gaussiankernel, kernelproduct
  10. from gklearn.preimage import MedianPreimageGenerator
  11. from gklearn.utils import Dataset
  12. def test_median_preimage_generator():
  13. # 1. set parameters.
  14. print('1. setting parameters...')
  15. ds_name = 'Letter-high'
  16. mpg = MedianPreimageGenerator()
  17. mpg_options = {'fit_method': 'k-graphs',
  18. 'init_ecc': [3, 3, 1, 3, 3],
  19. 'max_itrs': 6,
  20. 'ds_name': 'Letter-high',
  21. 'parallel': True,
  22. 'verbose': 2}
  23. mpg.set_options(**mpg_options)
  24. mixkernel = functools.partial(kernelproduct, deltakernel, gaussiankernel)
  25. sub_kernels = {'symb': deltakernel, 'nsymb': gaussiankernel, 'mix': mixkernel}
  26. mpg.kernel_options = {'name': 'structuralspkernel',
  27. 'edge_weight': None,
  28. 'node_kernels': sub_kernels,
  29. 'edge_kernels': sub_kernels,
  30. 'compute_method': 'naive',
  31. 'parallel': 'imap_unordered',
  32. # 'parallel': None,
  33. 'n_jobs': multiprocessing.cpu_count(),
  34. 'normalize': True,
  35. 'verbose': 2}
  36. mpg.ged_options = {'method': 'IPFP',
  37. 'initial_solutions': 40,
  38. 'edit_cost': 'LETTER2',
  39. 'attr_distance': 'euclidean',
  40. 'ratio_runs_from_initial_solutions': 1,
  41. 'threads': multiprocessing.cpu_count(),
  42. 'init_option': 'EAGER_WITHOUT_SHUFFLED_COPIES'}
  43. mpg.mge_options = {'init_type': 'MEDOID',
  44. 'random_inits': 10,
  45. 'time_limit': 600,
  46. 'verbose': 2,
  47. 'refine': False}
  48. # 2. get dataset.
  49. print('2. getting dataset...')
  50. mpg.dataset = Dataset()
  51. mpg.dataset.load_predefined_dataset(ds_name)
  52. mpg.dataset.cut_graphs(range(0, 10))
  53. # 3. compute median preimage.
  54. print('3. computing median preimage...')
  55. mpg.run()
  56. if __name__ == '__main__':
  57. test_median_preimage_generator()

A Python package for graph kernels, graph edit distances and graph pre-image problem.