mirror of
https://github.com/vale981/ray
synced 2025-03-06 02:21:39 -05:00
No description
![]() ## What do these changes do? **Vectorized envs**: Users can either implement `VectorEnv`, or alternatively set `num_envs=N` to auto-vectorize gym envs (this vectorizes just the action computation part). ``` # CartPole-v0 on single core with 64x64 MLP: # vector_width=1: Actions per second 2720.1284458322966 # vector_width=8: Actions per second 13773.035334888269 # vector_width=64: Actions per second 37903.20472563333 ``` **Async envs**: The more general form of `VectorEnv` is `AsyncVectorEnv`, which allows agents to execute out of lockstep. We use this as an adapter to support `ServingEnv`. Since we can convert any other form of env to `AsyncVectorEnv`, utils.sampler has been rewritten to run against this interface. **Policy serving**: This provides an env which is not stepped. Rather, the env executes in its own thread, querying the policy for actions via `self.get_action(obs)`, and reporting results via `self.log_returns(rewards)`. We also support logging of off-policy actions via `self.log_action(obs, action)`. This is a more convenient API for some use cases, and also provides parallelizable support for policy serving (for example, if you start a HTTP server in the env) and ingest of offline logs (if the env reads from serving logs). Any of these types of envs can be passed to RLlib agents. RLlib handles conversions internally in CommonPolicyEvaluator, for example: ``` gym.Env => rllib.VectorEnv => rllib.AsyncVectorEnv rllib.ServingEnv => rllib.AsyncVectorEnv ``` |
||
---|---|---|
.github | ||
.travis | ||
cmake/Modules | ||
doc | ||
docker | ||
examples | ||
java | ||
python | ||
site | ||
src | ||
test | ||
thirdparty/scripts | ||
vsprojects | ||
.clang-format | ||
.gitignore | ||
.style.yapf | ||
.travis.yml | ||
build-docker.sh | ||
build.sh | ||
CMakeLists.txt | ||
CONTRIBUTING.rst | ||
LICENSE | ||
pylintrc | ||
Ray.sln | ||
README.rst | ||
scripts | ||
setup_thirdparty.sh |
Ray === .. image:: https://travis-ci.com/ray-project/ray.svg?branch=master :target: https://travis-ci.com/ray-project/ray .. image:: https://readthedocs.org/projects/ray/badge/?version=latest :target: http://ray.readthedocs.io/en/latest/?badge=latest | Ray is a flexible, high-performance distributed execution framework. Ray is easy to install: ``pip install ray`` Example Use ----------- +------------------------------------------------+----------------------------------------------------+ | **Basic Python** | **Distributed with Ray** | +------------------------------------------------+----------------------------------------------------+ |.. code-block:: python |.. code-block:: python | | | | | # Execute f serially. | # Execute f in parallel. | | | | | | @ray.remote | | def f(): | def f(): | | time.sleep(1) | time.sleep(1) | | return 1 | return 1 | | | | | | | | | ray.init() | | results = [f() for i in range(4)] | results = ray.get([f.remote() for i in range(4)]) | +------------------------------------------------+----------------------------------------------------+ Ray comes with libraries that accelerate deep learning and reinforcement learning development: - `Ray Tune`_: Hyperparameter Optimization Framework - `Ray RLlib`_: Scalable Reinforcement Learning .. _`Ray Tune`: http://ray.readthedocs.io/en/latest/tune.html .. _`Ray RLlib`: http://ray.readthedocs.io/en/latest/rllib.html Installation ------------ Ray can be installed on Linux and Mac with ``pip install ray``. To build Ray from source or to install the nightly versions, see the `installation documentation`_. .. _`installation documentation`: http://ray.readthedocs.io/en/latest/installation.html More Information ---------------- - `Documentation`_ - `Tutorial`_ - `Blog`_ - `Ray paper`_ - `Ray HotOS paper`_ .. _`Documentation`: http://ray.readthedocs.io/en/latest/index.html .. _`Tutorial`: https://github.com/ray-project/tutorial .. _`Blog`: https://ray-project.github.io/ .. _`Ray paper`: https://arxiv.org/abs/1712.05889 .. _`Ray HotOS paper`: https://arxiv.org/abs/1703.03924 Getting Involved ---------------- - Ask questions on our mailing list `ray-dev@googlegroups.com`_. - Please report bugs by submitting a `GitHub issue`_. - Submit contributions using `pull requests`_. .. _`ray-dev@googlegroups.com`: https://groups.google.com/forum/#!forum/ray-dev .. _`GitHub issue`: https://github.com/ray-project/ray/issues .. _`pull requests`: https://github.com/ray-project/ray/pulls