张量流的概率建模与统计推断

tfp-nightl的Python项目详细描述


张量流概率

tensorflow概率是一个用于概率推理和统计的库 张量流分析。作为Tensorflow生态系统的一部分,Tensorflow 概率提供了概率方法与深度网络的集成, 基于梯度的推理通过自动区分和可扩展性 通过硬件加速(如GPU)和分布式的大型数据集和模型 计算。

我们的概率机器学习工具的结构如下。

第0层:张量流。数值运算。特别是直线牵引器 类启用可以利用特殊结构的无矩阵实现。 (对角线、低阶等)用于有效计算。它是建造和维护的 由Tensorflow概率小组,现在是 tf.linalg 核心tf.

第1层:统计构建块

第二层:模型构建

  • 爱德华2号(http://github.com/tensorflow/probability/tree/master/tensorflow_probability/python/edward2" rel="nofollow">tfp.edward2): 一种描述柔性概率的概率编程语言 作为程序的模型。见 edward2readme.md
  • 概率层(tfp.layers): 神经网络层的功能不确定, 扩展TensorFlow层。
  • 可训练分布(tfp.trainable_distributions): 用一个张量参数化的概率分布,使得 建立输出概率分布的神经网络。

第3层:概率推理

  • 马尔可夫链蒙特卡洛(http://github.com/tensorflow/probability/tree/master/tensorflow_probability/python/mcmc)rel="nofollow">tfp.mcmcc): 采样逼近积分的算法。包括 哈密顿蒙特卡洛, 随意漫步大都会黑斯廷斯,打造定制过渡能力 内核。
  • 变分推理(tfp.vi: 通过优化逼近积分的算法。
  • 优化器(tfp.optimizer): 随机优化方法,扩展了张量流优化方法。包括 随机梯度langevin dynamics
  • 蒙特卡洛(http://github.com/tensorflow/probability/blob/master/tensorflow_probability/python/monte_carlo" rel="nofollow">tfp.monte_carlo): 计算蒙特卡洛期望值的工具。

张量流概率正在积极发展中。接口可以随时更改 时间,

示例

参见tensorflow_probability/examples/ 对于端到端的示例。它包括教程笔记本,如:

它还包括示例脚本,如:

  • 深度指数族。 用于发现主题层次结构的深度稀疏生成模型。

安装

稳定构建

要安装最新版本,请运行以下命令:

# Notes:# - We recommend that users move towards using TensorFlow 2.x as soon as#   possible. Until the TF2 stable package is released (due in Sep. 2019),#   the best way to use TFP with TF2 is to use nightly TFP and TF2 packages:#     - Nightly TFP: [tfp-nightly](http://pypi.python.org/pypi/tfp-nightly)#     - Nightly TF2: [tf-nightly-2.0-preview](http://pypi.python.org/pypi/tf-nightly-2.0-preview)#   Once the TF2 stable release comes out, TFP will issue its 0.8.0 release,#   which will be tested and stable against TF 2.0.0.# - You need the latest version of `pip` in order to get the latest version of#   `tf-nightly-2.0-preview`.# - For GPU TF, use `tf-nightly-2.0-preview-gpu`.# - The `--upgrade` flag ensures you'll get the latest version.# - The `--user` flag ensures the packages are installed to your user directory#   rather than the system directory.
python -m pip install pip --upgrade --user
python -m pip install tf-nightly-2.0-preview tfp-nightly --upgrade --user
TFVERSION=$(python -c 'import tensorflow; print(tensorflow.__version__)')# If you have an older pip, you might get this older version of# tf-nightly-2.0-preview, so check to be sure.[[$TFVERSION=='2.0.0-dev20190731']]&&echo >&2"Failed to install the most recent TF. Found: ${TFVERSION}."

张量流概率取决于 tensorflow(pip包tensorflow)。见 tfp发行说明 有关TensorFlow和TensorFlow概率之间依赖关系的详细信息。

注:由于tensorflow是而不是包含在tensorflow的依赖项中 probability包(在setup.py中),必须显式安装tensorflow 封装(tensorflowtensorflow gpu)。这样我们就可以维持一个 为启用CPU和GPU的TensorFlow打包而不是单独打包。

要强制python 3特定的安装,请将上面的pip替换为pip3。 命令。有关其他安装帮助、安装先决条件指南, 以及(可选)设置虚拟环境,请参见tensorflow 安装指南

每晚生成

在pip包下还有tensorflow概率的夜间构建 tfp nightly,这取决于tf nightlytf nightly gpu之一, tf-nightly-2.0-previewtf-nightly-gpu-2.0-preview。夜间构建包括 较新的功能,但可能不如版本化版本稳定。文档是 定期刷新此处

从源安装

也可以从源安装。这需要bazel构建系统。

# sudo apt-get install bazel git python-pip  # Ubuntu; others, see above links.
git clone https://github.com/tensorflow/probability.git
cd probability
bazel build --copt=-O3 --copt=-march=native :pip_pkg
PKGDIR=$(mktemp -d)
./bazel-bin/pip_pkg $PKGDIR
pip install --user --upgrade $PKGDIR/*.whl

社区

作为TensorFlow的一部分,我们致力于培养一个开放和热情的 环境。

有关 更多细节。请在此处查看我们的最新宣传:

贡献

我们渴望与您合作!参见contribution.md 关于如何贡献的指南。这个项目遵循TensorFlow的 行为准则。通过参与,你应该 坚持这一准则。

参考文献

如果在论文中使用张量流概率,请引用:

  • 张量流分布。joshua v.dillon,ian langmore,dustin tran, 尤金·布雷夫多,斯里尼瓦斯·瓦苏德万,戴夫·摩尔,布莱恩·巴顿,亚历克斯·阿莱米,马特 霍夫曼,里夫·A·索罗斯。 arxiv预印本arxiv:1711.106042017

(我们知道TensorFlow概率比分布要多得多,但是分布文件展示了我们的愿景,现在是一个很好的引用。)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Spark sample()函数是否复制数据?   java如何在API中返回单例列表?   java我可以生成提供输入/输出的哈希函数吗?   如何“使用MATLAB或JAVA”从文本文件中读取数字并将其保存在数组中?   java如何将十进制转换为十六进制?   JavaPostXML文件   java XStream如何在XML中不存在带注释的字段时引发异常   java Tomcat启动批处理问题   java AccessControlException与同一代码库中的小程序类   java如何将长本地时间戳转换为字符串UTC时间戳   java在同一个JavaVM中有多个沙盒   改进LDAP的Java代码   拖放后未附加到DOM的java元素   java通过socket发送压缩数据