You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyGAD向fitness函数传参提示不支持args参数怎么解决?

PyGAD向适应度函数传递自定义参数的解决方法

报错原因是pygad.GA类的构造函数没有args参数,不能用其他机器学习库常用的args方式传参,可通过以下两种方案实现需求:

  • 方案1:使用闭包封装自定义参数
import pygad

# 外层函数接收自定义参数
def fitness_wrapper(num):
    def fitness_function(solution, solution_idx):
        print(num + 10)
        return sum(solution)
    # 返回已经绑定参数的适应度函数
    return fitness_function

ga_instance = pygad.GA(num_generations=1,
                       num_parents_mating=2,
                       sol_per_pop=3,
                       num_genes=4,
                       fitness_func=fitness_wrapper(num=5),
                       init_range_low=5,
                       init_range_high=15)
ga_instance.run()
  • 方案2:使用functools.partial提前绑定参数(更简洁)
import pygad
from functools import partial

def fitness_function(solution, solution_idx, num):
    print(num + 10)
    return sum(solution)

# 提前把num参数固定为5,生成仅需接收solution、solution_idx两个入参的新函数
bound_fitness = partial(fitness_function, num=5)

ga_instance = pygad.GA(num_generations=1,
                       num_parents_mating=2,
                       sol_per_pop=3,
                       num_genes=4,
                       fitness_func=bound_fitness,
                       init_range_low=5,
                       init_range_high=15)
ga_instance.run()

两种方案运行后都会按预期每次调用适应度函数时打印15,符合验证要求。

内容的提问来源于stack exchange,提问作者eignvalue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 02:36:05