tfp.distributions.Multinomial().sample()用法简介

在李沐的动手学深度学习的概率一章,有一个函数

tfp.distributions.Multinomial(1,fair_probs).sample()

先看一下官方文档的介绍:

tfp.distributions.Categorical(
    logits=None,
    probs=None,
    dtype=tf.int32,
    validate_args=False,
    allow_nan_stats=True,
    name='Categorical'
)

This Multinomial distribution is parameterized by probs, a (batch of) length-K prob (probability) vectors (K > 1) such that tf.reduce_sum(probs, -1) = 1, and a total_count number of trials, i.e., the number of trials per draw from the Multinomial. It is defined over a (batch of) length-K vector counts such that tf.reduce_sum(counts, -1) = total_count. The Multinomial is identically the Binomial distribution when K = 2.

译文:这个多项式分布由probs参数化,probs是一个(批次)长度-K prob(概率)向量(K>1),因此tf。reduce_sum(probs,-1)=1,以及试验的total_count次数,即多项式中每次绘制的试验次数。它是在一(批)长度-K矢量计数上定义的,因此tf。reduce_sum(counts,-1)=总数。当K=2时,多项式为二项式分布。

附上链接:https://tensorflow.google.cn/probability/api_docs/python/tfp/distributions/Multinomial?hl=en

官方说的太官方,我用自己的话简述一下。


fair_probs = tf.ones(6) / 6
print(fair_probs)    #tf.Tensor([0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667], shape=(6,), dtype=float32)

print(tfp.distributions.Multinomial(1, fair_probs)).sample()

 fair_probs:存上一个元素和为1的列表,每一个元素都代表一个概率。

举个例子:fair_probs = [0.1,0.2,0.3,0.4]

0.1就代表索引为0的概率是0.1

0.2就代表索引为1的概率是0.2

0.3就代表索引为2的概率是0.3

0.4就代表索引为3的概率是0.4。

tfp.distributions.Multinomial(参数1参数2).sample()

参数1代表进行随机的次数,参数2就是fair_probs。

总和起来就是每次随机都在fair_probs这个列表上进行随机,列表中每个位置被随机到的概率=当前位置的数值大小。总共随机参数1次。

上代码

fair_probs = tf.ones(6) / 6
print(fair_probs)
print(tfp.distributions.Multinomial(1, fair_probs).sample())

上结果: 

 随机了1次,随机倒了第4个位置。

随机100次试试:


fair_probs = tf.ones(6) / 6
print(fair_probs)
print(tfp.distributions.Multinomial(100, fair_probs).sample())

结果:

 大致就是这样,相当于一个摇骰子的功能,其他的参数我也没去了解,太繁琐了。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值