在python中使用蚁群优化的现有代码时出错。未找到错误dytpe数据 回溯(最近一次呼叫最后一次): 文件“C:\Users\user54\Desktop\AntColonyOptimizationGist.py”,第230行,在 优化(500250500000,25,10,freq=500,path=“Video 8/”) 文件“C:\Users\user54\Desktop\AntColonyOptimizationGist.py”,第214行,在优化中 网格=网格(高度、宽度、路径) 文件“C:\Users\user54\Desktop\AntColonyOptimizationGist.py”,第29行,在\uuu init中__ self.grid=numpy.empty((高度、宽度),dtype=Datum) TypeError:无法理解数据类型

在python中使用蚁群优化的现有代码时出错。未找到错误dytpe数据 回溯(最近一次呼叫最后一次): 文件“C:\Users\user54\Desktop\AntColonyOptimizationGist.py”,第230行,在 优化(500250500000,25,10,freq=500,path=“Video 8/”) 文件“C:\Users\user54\Desktop\AntColonyOptimizationGist.py”,第214行,在优化中 网格=网格(高度、宽度、路径) 文件“C:\Users\user54\Desktop\AntColonyOptimizationGist.py”,第29行,在\uuu init中__ self.grid=numpy.empty((高度、宽度),dtype=Datum) TypeError:无法理解数据类型,python,numpy,ant-colony,Python,Numpy,Ant Colony,我从互联网上获得的代码是: Traceback (most recent call last): File "C:\Users\user54\Desktop\AntColonyOptimizationGist.py", line 230, in <module> optimize(500, 500, 250, 500000, 25, 10, freq=500, path="Video 8/") File "C:\Users\user54\Desktop\AntColo

我从互联网上获得的代码是:

Traceback (most recent call last):
  File "C:\Users\user54\Desktop\AntColonyOptimizationGist.py", line 230, in <module>
    optimize(500, 500, 250, 500000, 25, 10, freq=500, path="Video 8/")
  File "C:\Users\user54\Desktop\AntColonyOptimizationGist.py", line 214, in optimize
    grid = Grid(height, width, path)
  File "C:\Users\user54\Desktop\AntColonyOptimizationGist.py", line 29, in __init__
    self.grid = numpy.empty((height, width), dtype=Datum)
TypeError: data type not understood
class AntColonyOptimization:
定义初始化(自):
通过
类别网格:
定义初始值(自身、高度、宽度、路径、随机测试=真):
"""
此方法初始化网格对象。网格基本上只是一个二维基准对象数组
:param height:这是网格的高度
:param width:这是网格的权重
"""
self.path=path
#存储网格的尺寸
self.dim=numpy.array([高度、宽度])
#初始化Datum类型的空numpy矩阵
self.grid=numpy.empty((高度、宽度),dtype=Datum)
如果采用随机试验:
#这用于随机填充网格
自组织随机网格(0.25)
#这使得情节重新绘制
plt.ion()
plt.图(figsize=(10,10))
self.max_d=0.001
定义随机网格(自、稀疏):
"""
一种随机初始化网格的方法
:param sparse:要填充的网格百分比
"""
对于范围内的y(自身尺寸[0]):
对于范围内的x(自身尺寸[1]):

如果random.random()是
Datum
类的名称?如果是这样,则必须改用
dtype=object
。datum应该是一种数据类型我正在使用python 2.7进行这项工作,因此我无法获得caffe之类的包来使用datum类。datum类hasclass datum:def uuu init uu(self,data):“”“一个基准对象基本上只是一个ND vector:param data:ND vector”“”self.data=data创建对象后仍然会出错完整的代码位于链接处
class AntColonyOptimization:
    def __init__(self):
        pass


class Grid:
    def __init__(self, height, width, path, rand_test=True):
        """
        This method initializes a grid object. A grid is basically just a 2D array of Datum objects
        :param height: this is the height of the grid
        :param width: this is the weight of the grid
        """
        self.path = path
        # Store the dimensions of the grid
        self.dim = numpy.array([height, width])
        # Initialize an empty numpy matrix of type Datum

        self.grid = numpy.empty((height, width), dtype=Datum)
        if rand_test:
            # This is used to fill the grid randomly
            self.rand_grid(0.25)
        # This makes the plot redraw
        plt.ion()
        plt.figure(figsize=(10, 10))
        self.max_d = 0.001

    def rand_grid(self, sparse):
        """
        A method for randomly initializing the grid
        :param sparse: the percentage of the grid to fill up
        """
        for y in range(self.dim[0]):
            for x in range(self.dim[1]):
                if random.random() <= sparse:
                    r = random.randint(0, 1)
                    if r == 0:
                        self.grid[y][x] = Datum(nrand.normal(5, 0.25, 10))
                    elif r == 1:
                        self.grid[y][x] = Datum(nrand.normal(-5, 0.25, 10))   


if __name__ == '__main__':
    optimize(500, 500, 250, 500000, 25, 10, freq=500, path="Video 8/")