Python Deap GP Оценка ошибок по отдельным причинам
В настоящее время у меня возникает проблема, когда я пытаюсь оценить человека, используя часть общей практики DEAP.
Я получаю следующую ошибку:
Traceback (последний вызов был последним): файл "ImageGP.py", строка 297, в поп, logs =gorithms.eaSimple (pop, toolbox, 0.9, 0.1, 60, stats = mstats, halloffame = hof, verbose = True) Файл "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/deap/algorithms.py", строка 148, в eaSimple для ind, вписывается в zip (invalid_ind, fitities): File "ImageGP.py", строка 229, в файле evalFunc func = toolbox.compile(expr= Individual)"/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/deap/gp.py", строка 451, в компиляции возвращает eval(код, файл pset.context, {})"", строка 1 лямбда-значение,oAvg13,oAvg17,oAvg21,sobelVal(v),sobelVal(h),edgeVal,blotchVal: [[[0, 75, 82.2857142857, 83.0, 82.9090909091, 4, 12, 4, 180], ... Продолжить печать всех моих данных... [0, 147, 151.244897959, 150.728395062, 150.73553719, 248, 244, 5, 210]]] ^ SyntaxError: неверный синтаксис
Если у кого-то есть идеи о том, что может быть причиной этой проблемы, я был бы очень признателен за некоторые советы. Моя текущая функция оценки выглядит так:
def evalFunc(individual, data, points):
func = toolbox.compile(expr=individual)
total = 1.0
for point in points:
tmp = [float(x) for x in data[point[1]][point[0]][1:9]]
total += int((0 if (func(*tmp)) < 0 else 1) == points[2])
print ("Fitness: " + str(total))
return total,
Где данные содержат используемые данные (значения для 8 переменных перечислены в ошибке) и указывают точку, указывающую координаты x и y, из которых можно получить эти 8 значений. Спасибо вам за ваши предложения!