def _create_rates(self, dist='<STR_LIT>', size=None, eps=<NUM_LIT>):
if size is None:<EOL><INDENT>size = self.output_size<EOL><DEDENT>if dist == '<STR_LIT>':<EOL><INDENT>z = np.random.uniform(eps, <NUM_LIT:1> - eps, size=size).astype(util.FLOAT)<EOL>return theano.shared(z, name=self._fmt('<STR_LIT>'))<EOL><DEDENT>if dist == '<STR_LIT>':<EOL><INDENT>z = np.random.uniform(-<NUM_LIT:6>, -eps, size=size).astype(util.FLOAT)<EOL>return theano.shared(np.exp(z), name=self._fmt('<STR_LIT>'))<EOL><DEDENT>return None<EOL>
Create a rate parameter (usually for a recurrent network layer).

        Parameters
        ----------
        dist : {'uniform', 'log'}, optional
            Distribution of rate values. Defaults to ``'uniform'``.
        size : int, optional
            Number of rates to create. Defaults to ``self.output_size``.
        eps : float, optional
            A "buffer" preventing rate values from getting too close to 0 or 1.
            Defaults to 1e-4.

        Returns
        -------
        rates : theano shared or None
            A vector of rate parameters for certain types of recurrent layers.