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

如何将遗传算法的函数超时时间设置为10秒以上?

解决遗传算法调用长耗时函数的超时问题
  • 错误原因:你用的geneticalgorithm库调用目标函数时,默认设了10秒的超时限制,由func_timeout参数控制。你的损失函数调用外部exe需要2-3分钟,远超这个时间,所以触发了超时断言错误。

  • 解决方案:初始化遗传算法模型时,直接添加func_timeout参数,设置足够长的超时时间(比如3分钟=180秒),或者设为None取消超时限制(不建议这么做,避免程序意外挂起)。

修改后的代码示例:

from geneticalgorithm import geneticalgorithm as ga

algorithm_param = {'max_num_iteration': None,\
               'population_size':100,\
               'mutation_probability':0.1,\
               'elit_ratio': 0.01,\
               'crossover_probability': 0.5,\
               'parents_portion': 0.3,\
               'crossover_type':'uniform',\
               'max_iteration_without_improv':None}

# 设置超时为3分钟(180秒)
ga_model = ga(function=loss_fn,
          dimension=2,
          variable_type='real',
          variable_boundaries=varbound,
          algorithm_parameters=algorithm_param,
          func_timeout=180)

ga_model.run()

如果要完全取消超时限制:

ga_model = ga(function=loss_fn,
          dimension=2,
          variable_type='real',
          variable_boundaries=varbound,
          algorithm_parameters=algorithm_param,
          func_timeout=None)

注意:func_timeout是ga类初始化的独立参数,不在algorithm_param字典里,所以你之前没找到这个配置项。如果设为None,一定要确保外部exe能稳定结束,别让程序无限挂起。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 18:55:35