基于找到here的HyperVolume函数(直接下载link),我正在尝试为我的算法返回超级卷指标。但是,测试代码甚至都不起作用:
from hv import HyperVolume
referencePoint = [2, 2, 2]
hyperVolume = HyperVolume(referencePoint)
front = [[1, 0, 1], [0, 1, 0]]
result = hyperVolume.compute(front)
我收到的错误似乎与我使用Python 3这一事实有关,而且函数本身也在使用Python 2.有没有办法解决这个问题?是否在Python 3中实现了类似的功能?
我也看过this one in deap,但似乎也有同样的问题。
LE:我已经被要求提供具体的错误,所以我会记录下这些错误,因为它们正在被解决
答案 0 :(得分:1)
使用2to3将hv.py转换为hv3.py:
$ 2to3 hv.py > hv3.py.patch
$ cp hv.py hv3.py
$ patch < hv3.py.patch
然后将导入行更改为
from hv3 import HyperVolume
如果您希望2to3
更改原始文件的修改,则需要传递-w
选项,如documentation
$ 2to3 -w hv.py
答案 1 :(得分:0)
使用2to3并替换以下hv.py行以修复TypeError:
decorated.sort()
到
sorted(decorated, key=lambda n: n[0])
它应该像python2一样工作。