def __init__(self, domain, discretization=20, seed=1):

        for v in ['features_num']:
            if getattr(self, v) is None:
                raise Exception('Missed domain initialization of ' + v)
        self.expectedStepCached = {}
        self.setBinsPerDimension(domain, discretization)
        self.domain = domain
        self.state_space_dims = domain.state_space_dims
        self.actions_num = domain.actions_num
        self.discretization = discretization
        try:
            self.weight_vec = np.zeros(self.features_num * self.actions_num)
        except MemoryError as m:
            print(
                "Unable to allocate weights of size: %d\n" %
                self.features_num *
                self.actions_num)
            raise m

        self._phi_sa_cache = np.empty(
            (self.actions_num, self.features_num))
        self._arange_cache = np.arange(self.features_num)
        self.agg_states_num = np.prod(self.bins_per_dim.astype('uint64'))
        self.logger = logging.getLogger("rlpy.Representations." + self.__class__.__name__)
        
        # a new stream of random numbers for each representation
        self.random_state = np.random.RandomState(seed=seed)
:param domain: the problem :py:class:`~rlpy.Domains.Domain.Domain` to learn
dataset/ETHPy150Open rlpy/rlpy/rlpy/Representations/Representation.py/Representation.__init__