114、Theano 随机数流变量
本文最后更新于 260 天前,其中的信息可能已经过时,如有错误请发送邮件到wuxianglongblog@163.com

Theano 随机数流变量

import theano
import theano.tensor as T
import numpy as np
Using gpu device 1: Tesla C2075 (CNMeM is disabled)

Theano 的随机数变量由 theano.sandbox.rng_mrg 中的 MRG_RandomStreams 实现(sandbox 表示是实验代码):

from theano.sandbox.rng_mrg import MRG_RandomStreams

新建一个 MRG_RandomStreams(seed=12345, use_cuda=None) 实例:

srng = MRG_RandomStreams()

它支持以下方法:

  • normal(size, avg=0.0, std=1.0, ndim=None, dtype=None, nstreams=None)
    • 产生指定形状的、服从正态分布 $N(avg, std)$ 的随机数变量,默认为标准正态分布
  • uniform(size, low=0.0, high=1.0, ndim=None, dtype=None, nstreams=None)
    • 产生指定形状的、服从均匀分布 $U(low, high)$ 的随机数变量,默认为 0-1 之间的均匀分布
  • binomial(size=None, n=1, p=0.5, ndim=None, dtype='int64', nstreams=None)
    • 产生指定形状的、服从二项分布 $B(n,p)$ 的随机数变量
  • multinomial(size=None, n=1, pvals=None, ndim=None, dtype='int64', nstreams=None)
    • 产生指定形状的、服从多项分布的随机数变量

与 np.random.random 不同,它产生的是随机数变量,而不是随机数数组,因此可以将 size 作为参数传给它:

rand_size = T.vector(dtype="int64")

rand_normal = srng.normal(rand_size.shape)
rand_uniform = srng.uniform(rand_size.shape)
rand_binomial = srng.binomial(rand_size.shape)

f_rand = theano.function(inputs = [rand_size], 
                         outputs = [rand_normal, rand_uniform, rand_binomial])

print f_rand(range(5))[0]
print f_rand(range(5))[1]
print f_rand(range(5))[2]
[ 0.10108768 -1.64354193  0.71042836 -0.77760422  0.06291872]
[ 0.23193923  0.71880513  0.03122572  0.97318739  0.99260223]
[0 1 0 1 1]
谨此笔记,记录过往。凭君阅览,如能收益,莫大奢望。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇