问题
在使用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(),文件路径在报错中。