With monitor is started with `.start(…save_trace=True)`, record
complete action/observation/reward tuples for any environment. Does it
efficiently in picked numpy arrays in the same directly as the other
monitoring files.
* Fix error when running min on empty list
Running min on an empty list (which occurs on first episode from `if len(content['timestamps'])==0: continue`) causes it to throw an error
* Update monitor.py
Return 0 for initial_reset_timestamp when no initial_reset_timestamps
* Support disabling videos by passing video_callable=False
* monitor.py: Flush after closing video recorder
This ensures that the last video recorded ends up
in the manifest
* Make environments seedable
* Fix monitor bugs
- Set monitor_id before setting the infix. This was a bug that would yield incorrect results with multiple monitors.
- Remove extra pid from stats recorder filename. This should be purely cosmetic.
* Start uploading seeds in episode_batch
* Fix _bigint_from_bytes for python3
* Set seed explicitly in random_agent
* Pass through seed argument
* Also pass through random state to spaces
* Pass random state into the observation/action spaces
* Make all _seed methods return the list of used seeds
* Switch over to np.random where possible
* Start hashing seeds, and also seed doom engine
* Fixup seeding determinism in many cases
* Seed before loading the ROM
* Make seeding more Python3 friendly
* Make the MuJoCo skipping a bit more forgiving
* Remove debugging PDB calls
* Make setInt argument into raw bytes
* Validate and upload seeds
* Skip box2d
* Make seeds smaller, and change representation of seeds in upload
* Handle long seeds
* Fix RandomAgent example to be deterministic
* Handle integer types correctly in Python2 and Python3
* Try caching pip
* Try adding swap
* Add df and free calls
* Bump swap
* Bump swap size
* Try setting overcommit
* Try other sysctls
* Try fixing overcommit
* Try just setting overcommit_memory=1
* Add explanatory comment
* Add what's new section to readme
* BUG: Mark ElevatorAction-ram-v0 as non-deterministic for now
* Document seed
* Move nondetermistic check into spec
* Improve auto close implementation
- Register all envs at initialization time, not just ones created via make
- Simplify names and add more documentation on interface
- Move closer instances into the relevant modules
review-requested: @jietang
* Close environments in the tests
This isn't strictly needed, but means there are fewer Doom
subprocesses hanging around while the tests run.
* Use 4 space indent in comment
* Improve docstrings in core
* Don't pass through args to __new__
The __init__ method gets called once __new__ returns,
so these arguments are either ignored (Python 2) or
result in an error (Python 3). The __init__ method
automatically gets called with the correct arguments.
* Fixup comments
Thanks @JKCooper2.
We also change to getting the PID at monitor construction time, rather
than at runtime. This means you need to start your environments
post-fork, which should be fine.
* Set restriction on selected actions
* Used self.action_space instead of custom set
* Move action validation to core.py
* Added env.score() function to return current score
* Set up multi monitor scoring
* Removed unneccesary package inclusions
* Monitor writes scores automatically. Video callable can now use monitor_id
* Monitor ID not necessary for video filtering
* Fix so final stats get written when env.reset() doesn't happen
* gitignore PyCharm Project Files
Before, on a headless server I was losing manifests with:
NullFunctionError: Attempt to call an undefined function glIsFramebuffer, check for bool(glIsFramebuffer) before calling (when closing Ant-v0)