class_docstr: Implements the Wheel Bandit environment.
  
  This environment implements the wheel bandit from Section 5.4 of [1] (please
  see references below) as a subclass of BanditPyEnvironment.
  
  Context features are sampled uniformly at random in the unit circle in R^2.
  There are 5 possible actions. There exists an exploration parameter `delta`
  in (0, 1) that determines the difficulty of the problem and the need for
  exploration.
  
  References:
  [1]. Carlos Riquelme, George Tucker, Jasper Snoek
  "Deep Bayesian Bandits Showdown: An Empirical Comparison of Bayesian Deep
  Networks for Thompson Sampling", International Conference on Learning
  Representations (ICLR) 2018.
  https://arxiv.org/abs/1802.09127
class_docstr_tok: ["Implements","the","Wheel","Bandit","environment",".","This","environment","implements","the","wheel","bandit","from","Section","5.4","of","[","1","]","(","please","see","references","below",")","as","a","subclass","of","BanditPyEnvironment",".","Context","features","are","sampled","uniformly","at","random","in","the","unit","circle","in","R^2",".","There","are","5","possible","actions",".","There","exists","an","exploration","parameter","`","delta","`","in","(","0",",","1",")","that","determines","the","difficulty","of","the","problem","and","the","need","for","exploration",".","References",":","[","1","]",".","Carlos","Riquelme",",","George","Tucker",",","Jasper","Snoek","''","Deep","Bayesian","Bandits","Showdown",":","An","Empirical","Comparison","of","Bayesian","Deep","Networks","for","Thompson","Sampling","''",",","International","Conference","on","Learning","Representations","(","ICLR",")","2018.","https",":","\/\/arxiv.org\/abs\/1802.09127"]
docstr: Returns 2-dim samples falling in the unit circle.
docstr_tok: ["Returns","2-dim","samples","falling","in","the","unit","circle","."]
code: def _observe(self) -> types.NestedArray:
      """Returns 2-dim samples falling in the unit circle."""
      theta = np.random.uniform(0.0, 2.0 * np.pi, (self._batch_size))
      r = np.sqrt(np.random.uniform(size=self._batch_size))
      batched_observations = np.stack(
          [r * np.cos(theta), r * np.sin(theta)], axis=1
      )
      self._observation = batched_observations.astype(
          self._observation_spec.dtype
      )
      return self._observation
  
file_path: agents/tf_agents/bandits/environments/wheel_py_environment.py
imports: from __future__ import absolute_import
  from typing import Optional, Sequence, Text
  import gin
  import numpy
  from tf_agents.bandits.environments import bandit_py_environment
  from tf_agents.specs import array_spec
  from tf_agents.trajectories import time_step
  from tf_agents.typing import types
label_desc: Use image node_id 5 for calling the WheelPyEnvironment obj's underlying member method code with example usage: obj._observe() and returns: self