问题标签 [densevariational]

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 投票
1 回答
253 浏览

python-3.x - 使用 DenseVariational 层的 Tensorflow-Probability 网络中的参数数量

我无法弄清楚为什么返回的模型在第二层有 189 个参数。我计算它们的方式应该更多。为什么会这样?

代码如下:

在此处输入图像描述

当涉及到第二层时,我们有 8 个输入(假设我们在第一层有 8 个输出)和 2 个输出。所以我们总共有 16 个权重。每个都有其均值和方差 => 2 * 16 = 32 个参数。

然后我们必须计算32个参数之间的协方差矩阵中的自由参数。考虑到协方差矩阵的对称性,我们只考虑包含对角线的三角矩阵。所以我们有 (32**2 - 32)/2 + 32 = 528 个参数。但模型摘要仅报告 189 个参数。

0 投票
2 回答
321 浏览

python-3.x - Tensorflow-Probability 中具有 3 个隐藏 DenseVariational 层的回归模型在训练期间返回 nan 作为损失

我正在熟悉 Tensorflow-Probability,在这里我遇到了一个问题。在训练期间,模型返回 nan 作为损失(可能意味着导致溢出的巨大损失)。由于合成数据的函数形式并不太复杂,而且数据点与参数的比率乍一看并不可怕,至少我想知道问题是什么以及如何纠正它。

代码如下——附有一些可能有用的图片:

在此处输入图像描述

在此处输入图像描述

训练模型

在此处输入图像描述

0 投票
2 回答
210 浏览

tensorflow - 如何使用 DenseVariational 层保存模型?

我正在尝试使用 DenseVariational 层构建模型,以便它可以报告认知不确定性。像https://www.tensorflow.org/probability/examples/Probabilistic_Layers_Regression#figure_3_epistemic_uncertainty

模型训练工作得很好,现在我想保存模型并将其加载到生产环境中。但是,当我尝试时model.save('path/model.h5'),我得到了

然后我加了

但它因新错误而失败

DenseVariational 层仅用于研究吗?

0 投票
0 回答
149 浏览

python-3.x - FailedPreconditionError:从容器读取资源变量dense_95/kernel时出错:localhost

我预先定义了一个 VAEloss 函数。当我调用这个函数并得到一个阈值时,我发现它是一个张量变量。当我尝试使用以下命令查看这个 Tensor 时,系统报错。有谁知道如何解决它?错误信息如下:</p>

FailedPreconditionError:从容器读取资源变量dense_95/kernel时出错:localhost。这可能意味着该变量未初始化。未找到:容器 localhost 不存在。(找不到资源:localhost/dense_95/kernel)[[{{node dense_95/MatMul/ReadVariableOp}}]]

在处理上述异常的过程中,又出现了一个异常:

0 投票
0 回答
113 浏览

python - tensorflow_probability 的 DenseVariational 层不适用于 ModelCheckpoint 回调

我在保存包含 tensorflow_probability 的 DenseVariational 层的模型时遇到问题。

尝试保存完整模型时出现错误:

如果我只想保存权重,这个:

我的模型架构:

编译模型后,我打印出weight.name

我猜这个问题源于重复的名字。这很奇怪,我对此没有任何解释,因为只有DenseVariational一层。

原则上我只是使用了这里的代码: https ://www.tensorflow.org/probability/examples/Probabilistic_Layers_Regression

但是添加了一个回调来保存模型:

和完整的模型:

0 投票
0 回答
167 浏览

python - 张量流概率中流归一化的变分推理

上次我读到了一些关于使用规范化流来改进变分推理 fe Link1 Link2的内容。

Tensorflow 概率已经在 bijector 子模块中提供了 RealNVP 和 MaskedAutoregressiveFlow,并且在 layers 子模块中提供了 AutoregressiveTransform 层。因此,我认为构建一个经过变分推理训练的贝叶斯神经网络和使用 Tensorflow Probability 的归一化流给出的后验将是简单而直接的。

从其中一个教程(链接)开始,我能够构建一个带有 mean_field_posterior 的 BNN。

然后事情开始变得复杂起来。我编写了以下函数,改编自此示例 ( Link ),以生成使用掩码自回归流转换正态分布的后验。

比较terior_vi_maf 和terior_mean_field 的形状和输出,从技术角度来看,似乎一切都应该起作用。

不幸的是,运行训练脚本(见底部)会引发以下错误消息:

有什么建议为什么会发生这种情况和/或我该如何解决这个问题?

0 投票
0 回答
64 浏览

python - 自定义 DistributionLambda 层中的变量未更新

我想构建一个自定义层,tensorflow-probability然后我可以使用它来构建DenseVariational层的后部。

作为第一步,我构建了以下后验,它相当于本教程中使用的平均场后验,但不是学习正态分布的参数,而是学习两个双射器的参数。

作为下一步,我认为对DistributionLambda层进行子类化是个好主意,因为这样可以设置更复杂的双射器。不幸的是,我的初稿似乎不起作用。更具体地说,我仍然能够运行我的代码,但似乎loc_params/scale_params在训练期间没有更新,但我不知道为什么会这样。有什么建议么?