Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make Monitor optional #167

Merged
merged 10 commits into from
Mar 13, 2022
Merged

Make Monitor optional #167

merged 10 commits into from
Mar 13, 2022

Conversation

toslunar
Copy link
Member

Fix #166.

@muupan
Copy link
Member

muupan commented Mar 11, 2022

/test

@pfn-ci-bot
Copy link

Successfully created a job for commit 55776dd:

@muupan muupan self-requested a review March 11, 2022 08:27
@toslunar
Copy link
Member Author

/test

@pfn-ci-bot
Copy link

Successfully created a job for commit afff3d5:

@muupan
Copy link
Member

muupan commented Mar 11, 2022

/test

@pfn-ci-bot
Copy link

Successfully created a job for commit afff3d5:

@muupan
Copy link
Member

muupan commented Mar 11, 2022

/test

@pfn-ci-bot
Copy link

Successfully created a job for commit 0c21181:

@muupan
Copy link
Member

muupan commented Mar 11, 2022

/test

@pfn-ci-bot
Copy link

Successfully created a job for commit 391648c:

.pfnci/run.sh Outdated Show resolved Hide resolved
@muupan
Copy link
Member

muupan commented Mar 12, 2022

/test

@pfn-ci-bot
Copy link

Successfully created a job for commit 466f63a:

pfrl/wrappers/monitor.py Outdated Show resolved Hide resolved
@muupan
Copy link
Member

muupan commented Mar 12, 2022

I confirmed that this PR works as follows.
Before this PR, gym==0.23.0 causes an error when import pfrl:

python examples/gym/train_dqn_gym.py --gpu -1 --env Pendulum-v1
Traceback (most recent call last):
  File "examples/gym/train_dqn_gym.py", line 23, in <module>
    import pfrl
  File "/Users/user/pfndev/pfrl/pfrl/__init__.py", line 20, in <module>
    from pfrl import wrappers  # NOQA
  File "/Users/user/pfndev/pfrl/pfrl/wrappers/__init__.py", line 4, in <module>
    from pfrl.wrappers.monitor import Monitor  # NOQA
  File "/Users/user/pfndev/pfrl/pfrl/wrappers/monitor.py", line 4, in <module>
    from gym.wrappers import Monitor as _GymMonitor
ImportError: cannot import name 'Monitor' from 'gym.wrappers' (/Users/user/.local/share/virtualenvs/pfrl-1dLBIXZi/lib/python3.7/site-packages/gym/wrappers/__init__.py)

After this PR, import pfrl works fine with gym==0.23.0. An error is raised only when I try to use Monitor.

python examples/gym/train_dqn_gym.py --gpu -1 --env Pendulum-v1
Output files are saved in results/466f63ad18ea725928ebf7ad22d929ec9c453dad-70cd82e5-3ec14d5f
WARNING: Since https://github.com/pfnet/pfrl/pull/112 we have started setting `eval_during_episode=True` in this script, which affects the timings of evaluation phases.
INFO:pfrl.experiments.train_agent:outdir:results/466f63ad18ea725928ebf7ad22d929ec9c453dad-70cd82e5-3ec14d5f step:200 episode:0 R:-1.157075492297421
INFO:pfrl.experiments.train_agent:statistics:[('average_q', nan), ('average_loss', nan), ('cumulative_steps', 200), ('n_updates', 0), ('rlen', 200)]
INFO:pfrl.experiments.train_agent:outdir:results/466f63ad18ea725928ebf7ad22d929ec9c453dad-70cd82e5-3ec14d5f step:400 episode:1 R:-1.397539478750692
INFO:pfrl.experiments.train_agent:statistics:[('average_q', nan), ('average_loss', nan), ('cumulative_steps', 400), ('n_updates', 0), ('rlen', 400)]
INFO:pfrl.experiments.train_agent:outdir:results/466f63ad18ea725928ebf7ad22d929ec9c453dad-70cd82e5-3ec14d5f step:600 episode:2 R:-1.6421154508871758
INFO:pfrl.experiments.train_agent:statistics:[('average_q', nan), ('average_loss', nan), ('cumulative_steps', 600), ('n_updates', 0), ('rlen', 600)]
INFO:pfrl.experiments.train_agent:outdir:results/466f63ad18ea725928ebf7ad22d929ec9c453dad-70cd82e5-3ec14d5f step:800 episode:3 R:-1.5671076399681863
...
python examples/gym/train_dqn_gym.py --gpu -1 --monitor --env Pendulum-v1
Output files are saved in results/466f63ad18ea725928ebf7ad22d929ec9c453dad-70cd82e5-17449428
Traceback (most recent call last):
  File "examples/gym/train_dqn_gym.py", line 272, in <module>
    main()
  File "examples/gym/train_dqn_gym.py", line 122, in main
    env = make_env(test=False)
  File "examples/gym/train_dqn_gym.py", line 111, in make_env
    env = pfrl.wrappers.Monitor(env, args.outdir)
  File "/Users/user/pfndev/pfrl/pfrl/wrappers/monitor.py", line 10, in __init__
    raise RuntimeError("Monitor is not available in this version of gym")

With gym==0.22.0, --monitor won't raise any error.

toslunar and others added 2 commits March 12, 2022 21:27
Co-authored-by: Yasuhiro Fujita <muupan@gmail.com>
@toslunar
Copy link
Member Author

/test

@pfn-ci-bot
Copy link

Successfully created a job for commit d0e4a4a:

pfrl/wrappers/monitor.py Outdated Show resolved Hide resolved
Co-authored-by: Yasuhiro Fujita <muupan@gmail.com>
@muupan
Copy link
Member

muupan commented Mar 13, 2022

/test

@pfn-ci-bot
Copy link

Successfully created a job for commit 7267243:

@muupan muupan merged commit cee0777 into pfnet:master Mar 13, 2022
@toslunar toslunar deleted the gym0.23 branch March 13, 2022 03:09
@muupan muupan added this to the v0.4.0 milestone Jul 16, 2023
@muupan muupan added the enhancement New feature or request label Jul 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

pin the gym version in the requirements.txt, latest gym breaks pfrl
3 participants