Commit Graph

31 Commits

Author SHA1 Message Date
Sebastian Wallkötter
7573c57e1a box.contains check dtype and promote non-ndarrays (#2374)
* box.contains check dtype and promote non-ndarrays

Closes: https://github.com/openai/gym/issues/2357 and #2298

Instead of only casting list to ndarray, cast any class to ndarray (if possible) and emit a warning when casting. Also, check if the dtype of the input matches the dtype of the space.

* use import warnings

* blackify

* changs from code review

* fix wrapped space

Co-authored-by: Tristan Deleu <tristandeleu@users.noreply.github.com>

* fix box bondaries

Co-authored-by: Tristan Deleu <tristandeleu@users.noreply.github.com>

* TEST: add regression test.

* STY: black

Co-authored-by: Tristan Deleu <tristandeleu@users.noreply.github.com>
2021-09-01 12:14:22 -04:00
Jan Kaiser
338b2acdb3 Made Box __repr__ output clearer (#2182) (#2183) 2021-07-31 13:19:06 -04:00
J K Terry
78d2b512d8 redo black (#2272) 2021-07-29 15:39:42 -04:00
Justin Terry
e9d2c41f2b redo black 2021-07-29 12:42:48 -04:00
Christian Clauss
bb81e141ea Blacken the codebase (#2265) 2021-07-28 20:26:34 -04:00
bion howard
7eebed08bf include low, high, & dtype in spaces.Box.__repr__ (#1974)
* include low, high, & dtype in spaces.Box.__repr__

multitask learners need a way to make a sensor for each space, and it's possible for two different Box spaces to have the same shape but different low/high/dtype, so this pull request just adds the minimum low value, maximum high value, and the dtype to Box.__repr__ so we can use str(box_space) as a key in a ModuleDict of sensors

* f-string to format

* fix typo

Co-authored-by: Peter Zhokhov <peterz@openai.com>
2020-08-14 15:30:58 -07:00
Peter Zhokhov
b2727d6fd3 0.17.2 and release notes 2020-05-08 16:25:27 -07:00
Zach Dwiel
174a27b7fc Allow Box more flexibility in how shape is provided (#1873)
The current implementation of Box doesn't allow passing an array as low or high while also providing a shape.
The current implementation of Box doesn't allow passing an array as low or high and a constant as the other bound.

Co-authored-by: pzhokhov <peterz@openai.com>
2020-05-08 14:56:14 -07:00
johannespitz
c6f275f4fb Avoid precision warning when creating gym.spaces.box with scalar bounds (#1878) 2020-04-24 17:24:35 -05:00
Pavel Shutov
bd68ec33f3 Fix sampling bug (#1761) 2019-12-13 15:25:37 +01:00
Guillermo González de Garibay
59d401ea3b Warn when Box dtype is casted to lower precision (#1744)
* Force explicit Box dtype

Having the `dtype` argument defaut to `np.float32` without warning can generate some unexpected issues.

For example:
```python
import gym
import numpy as np

num = np.array(3.1415926035897932)

gym.spaces.Box(-num, num).contains(num)  # returns False
```

* Warn on lowered precision
2019-12-06 14:13:46 +01:00
Gowtham.R
7a97c89b44 fix sampling bug (#1730)
* fix sampling bug

* remove clipping and do floor samples before type conversion
2019-11-01 16:22:11 -07:00
David Kraemer
4e3cd3f6b3 Extending the Box class to allow possibly unbounded boxes (#1567)
* Added support for unbounded box endpoints.

* Documentation and code cleanup.

* Fixed some of the logic of upper bounded versus lower bounded spaces.

* Included unbounded Box instances for the original tests.

* Removed unnecessary attribute in the Box class.
2019-06-28 15:54:31 -07:00
Tristan Deleu
e9053b4a12 Check for shape in equality operation between Box spaces (#1519) 2019-06-07 14:18:04 -07:00
Eric Liang
bfdf296358 fix attr-err (#1431) 2019-04-08 19:17:33 -07:00
Xingdong Zuo
cee92691ad Update box.py 2019-03-25 00:39:32 +01:00
pzhokhov
07645bd11e spaces equality fixes and tests (#1375)
* spaces equality fixes and tests

* squash-merged master

* added better equality tests and more checks against bad space creation
2019-03-23 23:18:19 -07:00
Robert Nishihara
f1f884898d Make super() calls Python 2 compatible. (#1312) 2019-02-07 11:29:04 -08:00
pzhokhov
3067a0b890 fix for issue 1256 (Box(low=0, high=255, dtype='uint8').sample() returned zeros) (#1307) 2019-02-05 17:49:29 -08:00
Xingdong Zuo
6497c9f1c6 Delete prng.py (#1196)
* Delete prng.py

Since it seems like this seeding function is rarely used.

* Update __init__.py

* Update kellycoinflip.py

* Update core.py

* Update box.py

* Update discrete.py

* Update multi_binary.py

* Update multi_discrete.py

* Update test_determinism.py

* Update test_determinism.py

* Update test_determinism.py

* Update core.py

* Update box.py

* Update test_determinism.py

* Update core.py

* Update box.py

* Update discrete.py

* Update multi_binary.py

* Update multi_discrete.py

* Update dict_space.py

* Update tuple_space.py

* Update core.py

* Create space.py

* Update __init__.py

* Update __init__.py

* Update box.py

* Update dict_space.py

* Update discrete.py

* Update dict_space.py

* Update multi_binary.py

* Update multi_discrete.py

* Update tuple_space.py

* Update discrete.py

* Update box.py

* Update dict_space.py

* Update multi_binary.py

* Update multi_discrete.py

* Update tuple_space.py

* Update multi_discrete.py

* Update multi_binary.py

* Update dict_space.py

* Update box.py

* Update test_determinism.py

* Update kellycoinflip.py

* Update space.py
2019-01-30 13:39:55 -08:00
Antonin RAFFIN
cdd212db4b Fix autodetect dtype warnings (#1234)
* Fix autodetect dtype warnings

* Use warnings module for gym logger

* Fix warning in tests
2018-11-28 17:27:27 -08:00
Antonin RAFFIN
2234f94e7b Add missing __eq__ and __repr__ methods (#1178)
* Add missing equality + repr methods

* Update gym.spaces tests
2018-09-24 11:11:03 -07:00
Alok Singh
6332d4f113 rm unnecessary __contains__ duplicate code (#1147)
`contains` really should not exist when it does exactly what the builtin
magic method `__contains__` was meant for, but that would break backward
compatibility.
2018-08-28 10:51:28 -07:00
Alok Singh
422c9c7bb3 Add __contains__ to spaces (#1111)
* Add __contains__ to spaces

Allows us to write expressions like `if x in env.action_space`.

* Update multi_discrete.py
2018-08-27 15:30:47 -07:00
tswr
f0f5e85aa1 Fixing a typo in box.py docstring (#922) 2018-03-07 14:09:12 +01:00
John Schulman
c21f09fb28 fix circular import (py2) by not importing spaces (#858) 2018-02-02 23:01:45 -08:00
John Schulman
4c460ba6c8 Cleanup, removal of unmaintained code (#836)
* add dtype to Box

* remove board_game, debugging, safety, parameter_tuning environments

* massive set of breaking changes
- remove python logging module
- _step, _reset, _seed, _close => non underscored method
- remove benchmark and scoring folder

* Improve render("human"), now resizable, closable window.

* get rid of default step and reset in wrappers, so it doesn’t silently fail for people with underscore methods

* CubeCrash unit test environment

* followup fixes

* MemorizeDigits unit test envrionment

* refactored spaces a bit
fixed indentation
disabled test_env_semantics

* fix unit tests

* fixes

* CubeCrash, MemorizeDigits tested

* gym backwards compatibility patch

* gym backwards compatibility, followup fixes

* changelist, add spaces to main namespaces

* undo_logger_setup for backwards compat

* remove configuration.py
2018-01-25 18:20:14 -08:00
Rafael Cosman
f254dd197e adds example usage to spaces (#173) 2016-06-11 23:10:58 -07:00
Greg Brockman
8a535ca6f2 Switch to a global PRNG for action/observation spaces (#144)
cf 58e6aa95e5 (commitcomment-17669277)
2016-05-30 18:07:59 -07:00
Greg Brockman
58e6aa95e5 [WIP] add support for seeding environments (#135)
* 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
2016-05-29 09:07:09 -07:00
Greg Brockman
e8f2980603 Initial release. Hello world :). 2016-04-27 08:00:58 -07:00