<liclass="toctree-l1 current has-children current-page"><aclass="current reference internal"href="#">Vectorize</a><inputchecked=""class="toctree-checkbox"id="toctree-checkbox-3"name="toctree-checkbox-3"role="switch"type="checkbox"/><labelfor="toctree-checkbox-3"><divclass="visually-hidden">Toggle navigation of Vectorize</div><iclass="icon"><svg><usehref="#svg-arrow-right"></use></svg></i></label><ul>
<liclass="toctree-l1 has-children"><aclass="reference internal"href="../../environments/toy_text/">Toy Text</a><inputclass="toctree-checkbox"id="toctree-checkbox-6"name="toctree-checkbox-6"role="switch"type="checkbox"/><labelfor="toctree-checkbox-6"><divclass="visually-hidden">Toggle navigation of Toy Text</div><iclass="icon"><svg><usehref="#svg-arrow-right"></use></svg></i></label><ul>
<liclass="toctree-l1 has-children"><aclass="reference internal"href="../../tutorials/gymnasium_basics/">Gymnasium Basics</a><inputclass="toctree-checkbox"id="toctree-checkbox-8"name="toctree-checkbox-8"role="switch"type="checkbox"/><labelfor="toctree-checkbox-8"><divclass="visually-hidden">Toggle navigation of Gymnasium Basics</div><iclass="icon"><svg><usehref="#svg-arrow-right"></use></svg></i></label><ul>
<liclass="toctree-l2"><aclass="reference internal"href="../../tutorials/gymnasium_basics/environment_creation/">Make your own custom environment</a></li>
<liclass="toctree-l1 has-children"><aclass="reference internal"href="../../tutorials/training_agents/">Training Agents</a><inputclass="toctree-checkbox"id="toctree-checkbox-9"name="toctree-checkbox-9"role="switch"type="checkbox"/><labelfor="toctree-checkbox-9"><divclass="visually-hidden">Toggle navigation of Training Agents</div><iclass="icon"><svg><usehref="#svg-arrow-right"></use></svg></i></label><ul>
<liclass="toctree-l2"><aclass="reference internal"href="../../tutorials/training_agents/action_masking_taxi/">Action Masking in the Taxi Environment</a></li>
<liclass="toctree-l2"><aclass="reference internal"href="../../tutorials/training_agents/action_masking_taxi/#running-the-experiment">Running the Experiment</a></li>
<liclass="toctree-l2"><aclass="reference internal"href="../../tutorials/training_agents/blackjack_q_learning/">Solving Blackjack with Tabular Q-Learning</a></li>
<liclass="toctree-l2"><aclass="reference internal"href="../../tutorials/training_agents/frozenlake_q_learning/">Solving Frozenlake with Tabular Q-Learning</a></li>
<liclass="toctree-l2"><aclass="reference internal"href="../../tutorials/training_agents/mujoco_reinforce/">Training using REINFORCE for Mujoco</a></li>
<liclass="toctree-l2"><aclass="reference internal"href="../../tutorials/training_agents/vector_a2c/">Speeding up A2C Training with Vector Envs</a></li>
<liclass="toctree-l1"><aclass="reference external"href="https://github.com/Farama-Foundation/Gymnasium/blob/main/docs/README.md">Contribute to the Docs</a></li>
<emclass="property"><spanclass="pre">class</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">gymnasium.vector.</span></span><spanclass="sig-name descname"><spanclass="pre">VectorEnv</span></span><aclass="reference internal"href="../../_modules/gymnasium/vector/vector_env/#VectorEnv"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#gymnasium.vector.VectorEnv"title="Link to this definition">¶</a></dt>
sub-environments at the same time. Gymnasium contains two generalised Vector environments: <aclass="reference internal"href="async_vector_env/#gymnasium.vector.AsyncVectorEnv"title="gymnasium.vector.AsyncVectorEnv"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">AsyncVectorEnv</span></code></a>
and <aclass="reference internal"href="sync_vector_env/#gymnasium.vector.SyncVectorEnv"title="gymnasium.vector.SyncVectorEnv"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">SyncVectorEnv</span></code></a> along with several custom vector environment implementations.
For <aclass="reference internal"href="#gymnasium.vector.VectorEnv.reset"title="gymnasium.vector.VectorEnv.reset"><codeclass="xref py py-func docutils literal notranslate"><spanclass="pre">reset()</span></code></a> and <aclass="reference internal"href="#gymnasium.vector.VectorEnv.step"title="gymnasium.vector.VectorEnv.step"><codeclass="xref py py-func docutils literal notranslate"><spanclass="pre">step()</span></code></a> batches <cite>observations</cite>, <cite>rewards</cite>, <cite>terminations</cite>, <cite>truncations</cite> and
<cite>info</cite> for each sub-environment, see the example below. For the <cite>rewards</cite>, <cite>terminations</cite>, and <cite>truncations</cite>,
the data is packaged into a NumPy array of shape <cite>(num_envs,)</cite>. For <cite>observations</cite> (and <cite>actions</cite>, the batching
process is dependent on the type of observation (and action) space, and generally optimised for neural network
input/outputs. For <cite>info</cite>, the data is kept as a dictionary such that a key will give the data for all sub-environment.</p>
<p>For creating environments, <codeclass="xref py py-func docutils literal notranslate"><spanclass="pre">make_vec()</span></code> is a vector environment equivalent to <codeclass="xref py py-func docutils literal notranslate"><spanclass="pre">make()</span></code> for easily creating
vector environments that contains several unique arguments for modifying environment qualities, number of environment,
<p>To avoid having to wait for all sub-environments to terminated before resetting, implementations can autoreset
sub-environments on episode end (<cite>terminated or truncated is True</cite>). This is crucial for correct implementing training
algorithms with vector environments. By default, Gymnasium’s implementation uses <cite>next-step</cite> autoreset, with
<codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">AutoresetMode</span></code> enum as the options. The mode used by vector environment should be available in <cite>metadata[“autoreset_mode”]</cite>.
Warning, some vector implementations or training algorithms will only support particular autoreset modes.
For more information, read <aclass="reference external"href="https://farama.org/Vector-Autoreset-Mode">https://farama.org/Vector-Autoreset-Mode</a>.</p>
<p>The info parameter of <aclass="reference internal"href="#gymnasium.vector.VectorEnv.reset"title="gymnasium.vector.VectorEnv.reset"><codeclass="xref py py-meth docutils literal notranslate"><spanclass="pre">reset()</span></code></a> and <aclass="reference internal"href="#gymnasium.vector.VectorEnv.step"title="gymnasium.vector.VectorEnv.step"><codeclass="xref py py-meth docutils literal notranslate"><spanclass="pre">step()</span></code></a> was originally implemented before v0.25 as a list
of dictionary for each sub-environment. However, this was modified in v0.25+ to be a dictionary with a NumPy
array for each key. To use the old info style, utilise the <codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">DictInfoToList</span></code> wrapper.</p>
<p>The Vector Environments have the additional attributes for users to understand the implementation</p>
<ulclass="simple">
<li><p><aclass="reference internal"href="#gymnasium.vector.VectorEnv.num_envs"title="gymnasium.vector.VectorEnv.num_envs"><codeclass="xref py py-attr docutils literal notranslate"><spanclass="pre">num_envs</span></code></a> - The number of sub-environment in the vector environment</p></li>
<li><p><aclass="reference internal"href="#gymnasium.vector.VectorEnv.observation_space"title="gymnasium.vector.VectorEnv.observation_space"><codeclass="xref py py-attr docutils literal notranslate"><spanclass="pre">observation_space</span></code></a> - The batched observation space of the vector environment</p></li>
<li><p><aclass="reference internal"href="#gymnasium.vector.VectorEnv.single_observation_space"title="gymnasium.vector.VectorEnv.single_observation_space"><codeclass="xref py py-attr docutils literal notranslate"><spanclass="pre">single_observation_space</span></code></a> - The observation space of a single sub-environment</p></li>
<li><p><aclass="reference internal"href="#gymnasium.vector.VectorEnv.action_space"title="gymnasium.vector.VectorEnv.action_space"><codeclass="xref py py-attr docutils literal notranslate"><spanclass="pre">action_space</span></code></a> - The batched action space of the vector environment</p></li>
<li><p><aclass="reference internal"href="#gymnasium.vector.VectorEnv.single_action_space"title="gymnasium.vector.VectorEnv.single_action_space"><codeclass="xref py py-attr docutils literal notranslate"><spanclass="pre">single_action_space</span></code></a> - The action space of a single sub-environment</p></li>
<spanclass="sig-prename descclassname"><spanclass="pre">VectorEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">step</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">actions</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">ActType</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">tuple</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">ObsType</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">ArrayType</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">ArrayType</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">ArrayType</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">dict</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">str</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">Any</span><spanclass="p"><spanclass="pre">]</span></span><spanclass="p"><spanclass="pre">]</span></span></span></span><aclass="reference internal"href="../../_modules/gymnasium/vector/vector_env/#VectorEnv.step"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#gymnasium.vector.VectorEnv.step"title="Link to this definition">¶</a></dt>
<ddclass="field-odd"><p><strong>actions</strong>– Batch of actions with the <aclass="reference internal"href="#gymnasium.vector.VectorEnv.action_space"title="gymnasium.vector.VectorEnv.action_space"><codeclass="xref py py-attr docutils literal notranslate"><spanclass="pre">action_space</span></code></a> shape.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">VectorEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">reset</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o"><spanclass="pre">*</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">seed</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">int</span><spanclass="w"></span><spanclass="p"><spanclass="pre">|</span></span><spanclass="w"></span><spanclass="pre">None</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">None</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">options</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">dict</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">str</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">Any</span><spanclass="p"><spanclass="pre">]</span></span><spanclass="w"></span><spanclass="p"><spanclass="pre">|</span></span><spanclass="w"></span><spanclass="pre">None</span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">None</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">tuple</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">ObsType</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">dict</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">str</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">Any</span><spanclass="p"><spanclass="pre">]</span></span><spanclass="p"><spanclass="pre">]</span></span></span></span><aclass="reference internal"href="../../_modules/gymnasium/vector/vector_env/#VectorEnv.reset"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#gymnasium.vector.VectorEnv.reset"title="Link to this definition">¶</a></dt>
<dd><p>Reset all parallel environments and return a batch of initial observations and info.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">VectorEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">render</span></span><spanclass="sig-paren">(</span><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">tuple</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">RenderFrame</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="p"><spanclass="pre">...</span></span><spanclass="p"><spanclass="pre">]</span></span><spanclass="w"></span><spanclass="p"><spanclass="pre">|</span></span><spanclass="w"></span><spanclass="pre">None</span></span></span><aclass="reference internal"href="../../_modules/gymnasium/vector/vector_env/#VectorEnv.render"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#gymnasium.vector.VectorEnv.render"title="Link to this definition">¶</a></dt>
<dd><p>Returns the rendered frames from the parallel environments.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">VectorEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">close</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="o"><spanclass="pre">**</span></span><spanclass="n"><spanclass="pre">kwargs</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Any</span></span></em><spanclass="sig-paren">)</span><aclass="reference internal"href="../../_modules/gymnasium/vector/vector_env/#VectorEnv.close"><spanclass="viewcode-link"><spanclass="pre">[source]</span></span></a><aclass="headerlink"href="#gymnasium.vector.VectorEnv.close"title="Link to this definition">¶</a></dt>
<dd><p>Close all parallel environments and release resources.</p>
<p>It also closes all the existing image viewers, then calls <codeclass="xref py py-meth docutils literal notranslate"><spanclass="pre">close_extras()</span></code> and set
<p>This function itself does not close the environments, it should be handled
in <codeclass="xref py py-meth docutils literal notranslate"><spanclass="pre">close_extras()</span></code>. This is generic for both synchronous and asynchronous
vectorized environments.</p>
</div>
<divclass="admonition note">
<pclass="admonition-title">Note</p>
<p>This will be automatically called when garbage collected or program exited.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">VectorEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">num_envs</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">int</span></em><aclass="headerlink"href="#gymnasium.vector.VectorEnv.num_envs"title="Link to this definition">¶</a></dt>
<dd><p>The number of sub-environments in the vector environment.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">VectorEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">action_space</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">gym.Space</span></em><aclass="headerlink"href="#gymnasium.vector.VectorEnv.action_space"title="Link to this definition">¶</a></dt>
<dd><p>The (batched) action space. The input actions of <cite>step</cite> must be valid elements of <cite>action_space</cite>.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">VectorEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">observation_space</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">gym.Space</span></em><aclass="headerlink"href="#gymnasium.vector.VectorEnv.observation_space"title="Link to this definition">¶</a></dt>
<dd><p>The (batched) observation space. The observations returned by <cite>reset</cite> and <cite>step</cite> are valid elements of <cite>observation_space</cite>.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">VectorEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">single_action_space</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">gym.Space</span></em><aclass="headerlink"href="#gymnasium.vector.VectorEnv.single_action_space"title="Link to this definition">¶</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">VectorEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">single_observation_space</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">gym.Space</span></em><aclass="headerlink"href="#gymnasium.vector.VectorEnv.single_observation_space"title="Link to this definition">¶</a></dt>
<dd><p>The observation space of a sub-environment.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">VectorEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">spec</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><aclass="reference internal"href="../registry/#gymnasium.envs.registration.EnvSpec"title="gymnasium.envs.registration.EnvSpec"><spanclass="pre">EnvSpec</span></a><spanclass="w"></span><spanclass="p"><spanclass="pre">|</span></span><spanclass="w"></span><spanclass="pre">None</span></em><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">None</span></em><aclass="headerlink"href="#gymnasium.vector.VectorEnv.spec"title="Link to this definition">¶</a></dt>
<dd><p>The <codeclass="docutils literal notranslate"><spanclass="pre">EnvSpec</span></code> of the environment normally set during <aclass="reference internal"href="../registry/#gymnasium.make_vec"title="gymnasium.make_vec"><codeclass="xref py py-meth docutils literal notranslate"><spanclass="pre">gymnasium.make_vec()</span></code></a></p>
<spanclass="sig-prename descclassname"><spanclass="pre">VectorEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">metadata</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">dict</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">str</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">Any</span><spanclass="p"><spanclass="pre">]</span></span></em><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">{}</span></em><aclass="headerlink"href="#gymnasium.vector.VectorEnv.metadata"title="Link to this definition">¶</a></dt>
<dd><p>The metadata of the environment containing rendering modes, rendering fps, etc</p>
<spanclass="sig-prename descclassname"><spanclass="pre">VectorEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">render_mode</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">str</span><spanclass="w"></span><spanclass="p"><spanclass="pre">|</span></span><spanclass="w"></span><spanclass="pre">None</span></em><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">None</span></em><aclass="headerlink"href="#gymnasium.vector.VectorEnv.render_mode"title="Link to this definition">¶</a></dt>
<dd><p>The render mode of the environment which should follow similar specifications to <cite>Env.render_mode</cite>.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">VectorEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">closed</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">bool</span></em><emclass="property"><spanclass="w"></span><spanclass="p"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="pre">False</span></em><aclass="headerlink"href="#gymnasium.vector.VectorEnv.closed"title="Link to this definition">¶</a></dt>
<dd><p>If the vector environment has been closed already.</p>
<emclass="property"><spanclass="pre">property</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">VectorEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">unwrapped</span></span><aclass="headerlink"href="#gymnasium.vector.VectorEnv.unwrapped"title="Link to this definition">¶</a></dt>
<emclass="property"><spanclass="pre">property</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">VectorEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">np_random</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">Generator</span></em><aclass="headerlink"href="#gymnasium.vector.VectorEnv.np_random"title="Link to this definition">¶</a></dt>
<dd><p>Returns the environment’s internal <codeclass="xref py py-attr docutils literal notranslate"><spanclass="pre">_np_random</span></code> that if not set will initialise with a random seed.</p>
<emclass="property"><spanclass="pre">property</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">VectorEnv.</span></span><spanclass="sig-name descname"><spanclass="pre">np_random_seed</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">int</span><spanclass="w"></span><spanclass="p"><spanclass="pre">|</span></span><spanclass="w"></span><spanclass="pre">None</span></em><aclass="headerlink"href="#gymnasium.vector.VectorEnv.np_random_seed"title="Link to this definition">¶</a></dt>
<dd><p>Returns the environment’s internal <codeclass="xref py py-attr docutils literal notranslate"><spanclass="pre">_np_random_seed</span></code> that if not set will first initialise with a random int as seed.</p>
<p>If <aclass="reference internal"href="#gymnasium.vector.VectorEnv.np_random_seed"title="gymnasium.vector.VectorEnv.np_random_seed"><codeclass="xref py py-attr docutils literal notranslate"><spanclass="pre">np_random_seed</span></code></a> was set directly instead of through <aclass="reference internal"href="#gymnasium.vector.VectorEnv.reset"title="gymnasium.vector.VectorEnv.reset"><codeclass="xref py py-meth docutils literal notranslate"><spanclass="pre">reset()</span></code></a> or <codeclass="xref py py-meth docutils literal notranslate"><spanclass="pre">set_np_random_through_seed()</span></code>,