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

如何在Julia Agents中每隔指定步数收集仿真数据

如何在Julia Agents中每隔指定步数收集仿真数据

嘿,我懂你刚接触Julia Agents时摸不着头绪的感觉!其实不用费劲去改框架内部逻辑,这个需求框架本身就有现成的解决方案~

你现在用的ensemblerun!函数支持一个叫when的关键字参数,专门用来控制什么时候收集adata里的数据,默认是每一步都收集,咱们只要给它传一个判断条件就行:

  • 方法一:自定义判断函数
    先写一个函数来判断当前步数是否是50的倍数,再把它传给when参数:

    # 定义判断逻辑:当步数是50的倍数时返回true
    collect_every_50(step) = step % 50 == 0
    
    # 把when参数加入调用中
    ensemblerun!(models, agent_step!, dummystep, 1000; adata, parallel = true, when = collect_every_50);
    
  • 方法二:用匿名函数更简洁
    如果不想单独定义函数,直接写匿名函数也可以,代码更紧凑:

    ensemblerun!(models, agent_step!, dummystep, 1000; adata, parallel = true, when = s -> s % 50 == 0);
    

额外补充:如果之后你需要更复杂的收集条件(比如结合模型状态判断),when函数还可以接收模型对象和步数两个参数,比如:

# 不仅要求步数是50的倍数,还要模型的某个状态满足条件才收集
collect_condition(model, step) = step % 50 == 0 && model.some_state > 100
ensemblerun!(models, agent_step!, dummystep, 1000; adata, parallel = true, when = collect_condition);

这样就不用再纠结怎么插入steps mod 50 == 0的条件啦,框架已经帮咱们预留好这个控制入口了~

备注:内容来源于stack exchange,提问作者Simone Gabbriellini

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 11:58:14