In [1]:
%matplotlib inline
from __future__ import print_function
from theano.tensor.shared_randomstreams import RandomStreams
from theano import function
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
# initialize random stream
rng = np.random.RandomState(1234)
srng = RandomStreams(rng.randint(1234))
rng是numpy的随机数生成器,rng.randint(1234)从[0,1234)的离散均匀分布随机采样一个整数作为theano随机数生成器的种子。theano的RandomStreams是共享变量,因此在编译与它有关的函数时不需要将它作为参数传入。In [2]:
# sample 1,000,000 points from uniform distribution
_uniform = srng.uniform(low=0, high=1, size=(1000000,))
uniform = function([], _uniform)
sns.distplot(uniform())
plt.show()
In [3]:
# toss a coin 10000 times
p = 0.5
_toss_coin = srng.binomial(n=10000, p=p)
toss_coin = function([], _toss_coin)
print(toss_coin())
In [4]:
# Throw a dice 10000 times
_roll_dice = srng.multinomial(n=10000, pvals=[1/6.]*6)
roll_dice = function([], _roll_dice)
print(roll_dice())
In [5]:
# sample 1,000,000 points from uniform distribution
_uniform = srng.uniform(low=0, high=1, size=(1000000,))
uniform = function([], _uniform)
sns.distplot(uniform())
plt.show()
In [6]:
# sample 10000 points from poisson distribution
_poisson = srng.poisson(lam=10, size=(10000, ))
poisson = function([], _poisson)
sns.distplot(poisson())
plt.show()
In [7]:
# generate random permutation
_perm = srng.permutation(n=10)
perm = function([], _perm)
print(perm())
没有评论:
发表评论