oxwhirl/pymarl

I don't find the implementation of the IQL

Closed this issue · 6 comments

Hello,Thank you for your efforts for this implementations.
I want to find the implementation of the IQL, unfortunately,I don't find it.(but I find the iql_smac.yaml file in config folder) Would you mind tell me where is it?
Thank you!

Are you looking for the q_learner file?

https://github.com/oxwhirl/pymarl/blob/master/src/learners/q_learner.py

With IQL, the mixer is set to None.

@kasimte Thinks for your answer.
But I get this error

ValueError: Mixer None not recognised

using this command

python3 src/main.py --config=iql --env-config=sc2 with env_args.map_name=2s3z

Do you know how to solve this problem ?

Good point. I've reproduced your error and here is the full traceback:

Traceback (most recent calls WITHOUT Sacred internals):
  File "src/main.py", line 35, in my_main
    run(_run, config, _log)
  File "/Users/Kasim/Projects/ml/pymarl/src/run.py", line 48, in run
    run_sequential(args=args, logger=logger)
  File "/Users/Kasim/Projects/ml/pymarl/src/run.py", line 114, in run_sequential
    learner = le_REGISTRY[args.learner](mac, buffer.scheme, logger, args)
  File "/Users/Kasim/Projects/ml/pymarl/src/learners/q_learner.py", line 26, in __init__
    raise ValueError("Mixer {} not recognised.".format(args.mixer))
ValueError: Mixer None not recognised.

I suggest removing the "None" in the config file like so:

kasimte@fa6f1c8

And then running it again.

It works. Thanks for your replay.

Just merged in a fix for this (#41), so it should be fixed in the main repo now (Same fix as suggested by kasimte).

I accidentally set the mixer to None instead of leaving it blank in the yaml file when doing the latest updates.