问题
在使用python的grakel模块的最短路径核进行图核相似度时遇到一下报错:
File "/usr/local/lib/python3.6/dist-packages/grakel/graph.py", line 655, in build_shortest_path_matrix
dict_fd, _ = dijkstra(self.edge_dictionary, k)
File "/usr/local/lib/python3.6/dist-packages/grakel/graph.py", line 1684, in dijkstra
queue[w] = vwLength
File "/usr/local/lib/python3.6/dist-packages/grakel/tools.py", line 65, in __setitem__
self.__heap = [(v, k) for k, v in self.iteritems()]
AttributeError: 'priority_dict' object has no attribute 'iteritems'
原因
最短路径核使用的dict的iteritems()方法只在python2中使用,在python3.x中方法变成items()。
解决方案
在python3.x中使用最短路径核需要修改源码,即将tools.py文件中第65行代码的iteritems()修改成items(),文件路径在报错中。