问题标签 [tensorflow-probability]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1159 浏览

tensorflow - 如何计算两个张量流概率分布的 Kullback-Leibler 散度相对于分布均值的梯度?

在 tensorflow-2.0 中,我试图创建一个keras.layers.Layer输出两个之间的 Kullback-Leibler (KL) 散度tensorflow_probability.distributions。我想计算输出相对于其中一个的平均值的梯度(即 KL 散度)tensorflow_probability.distributions

0不幸的是,在我迄今为止的所有尝试中,生成的渐变都是。

我尝试实现如下所示的最小示例。我想知道这些问题是否与 的急切执行模式有关tf 2,因为我知道在 中有效的类似方法,tf 1默认情况下禁用急切执行。

这是我尝试过的最小示例:

上面代码的输出是

KL 散度计算正确,但所得梯度为0. 获得梯度的正确方法是什么?

0 投票
1 回答
351 浏览

python - Tensorflow - 时间卷积网络不学习

我在 Tensorflow 中开发了一个自回归时间卷积网络。但是,当我在 Temporal Block 中添加一个概率层时,它会停止全批次学习。在小批量中,损失提高了,准确度也提高了,但测试集中的准确度没有改变。

导致这种情况的问题是这行代码:

x = tfp.layers.DistributionLambda(lambda t: tfd.Normal(loc=t, scale=.1))(x)

代码如下:

全批次的输出训练示例:

使用小批量的输出训练示例:

我添加了归一化,降低了学习率(因为它似乎在梯度中存在一个平台),改变了批量大小、激活函数、隐藏层但没有成功。

关于如何解决这个问题的任何想法?

数据可在此处获得

我正在使用 TensorFlow 1.14

0 投票
1 回答
179 浏览

montecarlo - 使用 tfp.mcmc.MetropolisHastings 进行物理模型

我是 Tensorflow 的新手,想使用 Tensorflow 概率库对物理问题进行建模。Tensorflow 带有 tfp.mcmc.MetropolisHastings 函数,这是我想要使用的算法。

我提供了我的初始分布。在我的例子中,这是一个二维网格,每个网格点上都有一个“旋转”(物理学并不重要),可以是 +1 或 -1。新状态 x' 的提议应该是其中一个自旋翻转的旧网格,因此在某一点 +1 变为 -1,反之亦然。我可以传递步长参数,但我的 x 不是我可以简单地增加的标量。我该如何建模?有没有一种方法可以传递更新规则,而不仅仅是将值增加一定的步长?

0 投票
1 回答
236 浏览

python-3.x - 使用 Tensorflow Probability 的 RandomWalkMetropolis 函数执行 RandomWalk 步骤

我是 Tensorflow Probability 的新手,想做一个 RandomWalk Montecarlo 模拟。假设我有代表状态的张量 r。我希望 tfp.mcmc.RandomWalkMetropolis 函数返回新状态 r' 的提议。

仅返回此 RandomWalkMetropolis 对象,而不是相同的状态或轻微扰动的状态。RandomWalkMetropolis 类还包含函数 one_step,但它需要“previous_kernel_results”,而我没有,因为我希望这是我的第一步。另外,如何进一步指定 Metropolis 接受/拒绝步骤?

0 投票
2 回答
2169 浏览

python - 有没有办法在 TensorFlow 会话中调用 Numpy 函数?

我正在尝试使用 TensorFlow 和 TensorFlow Probability 实现期望最大化算法。在我尝试实现缺失数据(数据可以包含某些随机维度的 NaN 值)之前,它运行良好。

问题是,使用缺失数据我不能再将所有操作作为向量操作,我必须使用索引和 for 循环,如下所示:

我发现这些操作效率不高。虽然第一个样本每个样本大约需要不到 1 秒,但在 50 个样本之后,每个样本大约需要 3 秒。我猜这是因为我在会话中创建了不同的张量,这会弄乱内存或其他东西。

我对使用 TensorFlow 很陌生,很多人只将 TensorFlow 用于深度学习和神经网络,所以我找不到解决方案。

然后我尝试仅使用 numpy 数组和 numpy 操作来实现前面的 for 循环和在该循环内调用的函数。但这返回了以下错误:

您必须使用 dtype double 和 shape [8,18] 为占位符张量“Placeholder_4”提供一个值

发生此错误是因为当它尝试在循环内执行 numpy 函数时,尚未输入占位符。

有没有办法解决这个问题?谢谢。

0 投票
1 回答
302 浏览

python - n-batch > 1 的多元正态分布

我试图将如何在最新版本的 Tensorflow中使用 MultiVariateNormal 分布中给出的示例概括为二维但不止一批的正态分布。当我运行以下命令时:

我收到不兼容的形状错误:

我对文档(https://www.tensorflow.org/api_docs/python/tf/contrib/distributions/MultivariateNormalFullCovariance)的理解是,要计算 pdf,需要一个 [n_observation, n_dimensions] 张量(在这个例子:idx.shape= TensorShape([Dimension(3600), Dimension(2)]))。我数学错了吗?

0 投票
1 回答
940 浏览

tensorflow2.0 - 如何在 tensorflow 2.0 中训练 tensorflow 概率双射器(权重)?

以下示例是一些双射变换的简单版本(例如 BatchNorm 的泛化(将分布拟合到输入并使用 CDF 像 copula 一样变换输入)。下面的代码导致“未提供梯度”错误.

文档中有这种模式吗?我没有找到它。

0 投票
1 回答
169 浏览

python - 在 colab 中运行 jupyter 笔记本

以张量流概率运行 colab 示例我收到错误。

https://github.com/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/Bayesian_Gaussian_Mixture_Model.ipynb

尝试更改它,但我认为代码需要更新。

没有错误。colab 笔记本应使用最新更新运行。我认为代码需要更新,我试图用更多错误更新配置。

0 投票
1 回答
89 浏览

tensorflow - 来自正态分布和柯西分布的独立分布

tfp.distributions.Independent 可用于从每个维度独立的多元分布(例如 2-batch Normal)中进行采样。它可以用来定义一个二维分布,其中一个维度是柯西,另一个是正态分布?如果有怎么办?

0 投票
1 回答
181 浏览

python - Eager 模式下的 TFP 精确 GP 回归

我正在尝试使用 TF2.0 急切模式执行精确的 GP 回归,基于来自 https://colab.research.google.com/github/tensorflow/probability/blob/master/tensorflow_probability/examples的基于原始图的示例/jupyter_notebooks/Gaussian_Process_Regression_In_TFP.ipynb

然而优化失败:

“tensorflow.python.framework.ops.EagerTensor”对象没有属性“_in_graph_mode”

如果我将幅度、length_scale 和 observation_noise_variance 分别移动到 tf.Variable,例如:

优化失败:

ValueError:没有为任何变量提供梯度:['amplitude:0', 'length_scale:0', 'observation_noise_variance:0']。

我究竟做错了什么?