Welcome to ZhuSuan DOC

ZhuSuan是一个用于贝叶斯深度学习的python概率编程库,它结合了贝叶斯方法和深度学习的互补优势。 ZhuSuan建立在Tensorflow之上。 与现有的深度学习库(主要用于确定性神经网络和监督任务)不同,ZhuSuan提供深度学习风格原语和算法,用于构建概率模型和应用贝叶斯推理。 支持的推理算法包括:

  • 具有可编程变分后验,各种目标和高级梯度估计器(SGVB,REINFORCE,VIMCO等)的变分推理。
  • 用于学习和评估模型的重要性抽样,具有可编程的建议。
  • Hamiltonian Monte Carlo(HMC)具有并行链,可选自动参数调整。

Installation

ZhuSuan仍处于发展阶段。 在第一个稳定版本(1.0)之前,请克隆GitHub存储库并运行。

在主目录中。 这将自动安装ZhuSuan及其依赖项。 ZhuSuan还需要Tensorflow 1.0或更高版本。 因为用户应该选择是否安装Tensorflow的cpu或gpu版本,所以我们不会将它包含在依赖项中。 请参阅安装Tensorflow。

After installation, open your python console and type:

>>> import zhusuan as zs

If no error occurs, you’ve successfully installed ZhuSuan.

Basic Concepts in ZhuSuan

Distribution and StochasticTensor

概率分布是构建有向图形模型(贝叶斯网络)的关键组件。 ZhuSuan为他们提供了两层抽象:分布和随机传感器(StochasticTensor),这对初学者来说可能有点混乱。 我们在这里明确他们的定义和联系。 

Distribution

Distribution类是各种概率分布的基类,它支持批输入,生成批量样本并评估给定值批次的概率。

可在以下页面上找到所有可用分发的列表:

单变量分布
多变量分布

这些分布可以通过(例如,单变量正态分布)从ZhuSuan访问:

>>> import zhusuan as zs
>>> a = zs.distributions.Normal(mean=0., logstd=0.)

分布的典型输入形状类似于batch_shape + input_shape。 其中input_shape表示非批输入参数的形状; batch_shape表示将多少独立输入馈送到分发中。 通常,分发支持广播输入。

可以通过调用分发对象的sample()方法生成样本。 形状为([n_samples] +)batch_shape + value_shape。 仅当传递n_samples为None(默认情况下)时,才会省略第一个附加轴,在这种情况下会生成一个样本。 value_shape是分布的非批量值形状。 对于单变量分布,其value_shape为[]。

单变量分布示例(正常):

>>> import tensorflow as tf
>>> _ = tf.InteractiveSession()

>>> b = zs.distributions.Normal([[-1., 1.], [0., -2.]], [0., 1.])

>>> b.batch_shape.eval()
array([2, 2], dtype=int32)

>>> b.value_shape.eval()
array([], dtype=int32)

>>> tf.shape(b.sample()).eval()
array([2, 2], dtype=int32)

>>> tf.shape(b.sample(1)).eval()
array([1, 2, 2], dtype=int32)

>>> tf.shape(b.sample(10)).eval()
array([10,  2,  2], dtype=int32)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值