问题标签 [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.
tensorflow - 如何使用 DenseVariational 层保存模型?
我正在尝试使用 DenseVariational 层构建模型,以便它可以报告认知不确定性。像https://www.tensorflow.org/probability/examples/Probabilistic_Layers_Regression#figure_3_epistemic_uncertainty
模型训练工作得很好,现在我想保存模型并将其加载到生产环境中。但是,当我尝试时model.save('path/model.h5')
,我得到了
然后我加了
但它因新错误而失败
DenseVariational 层仅用于研究吗?
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}}]]
在处理上述异常的过程中,又出现了一个异常:
python - tensorflow_probability 的 DenseVariational 层不适用于 ModelCheckpoint 回调
我在保存包含 tensorflow_probability 的 DenseVariational 层的模型时遇到问题。
尝试保存完整模型时出现错误:
如果我只想保存权重,这个:
我的模型架构:
编译模型后,我打印出weight.name
:
我猜这个问题源于重复的名字。这很奇怪,我对此没有任何解释,因为只有DenseVariational
一层。
原则上我只是使用了这里的代码: https ://www.tensorflow.org/probability/examples/Probabilistic_Layers_Regression
但是添加了一个回调来保存模型:
和完整的模型:
python - 张量流概率中流归一化的变分推理
上次我读到了一些关于使用规范化流来改进变分推理 fe Link1 Link2的内容。
Tensorflow 概率已经在 bijector 子模块中提供了 RealNVP 和 MaskedAutoregressiveFlow,并且在 layers 子模块中提供了 AutoregressiveTransform 层。因此,我认为构建一个经过变分推理训练的贝叶斯神经网络和使用 Tensorflow Probability 的归一化流给出的后验将是简单而直接的。
从其中一个教程(链接)开始,我能够构建一个带有 mean_field_posterior 的 BNN。
然后事情开始变得复杂起来。我编写了以下函数,改编自此示例 ( Link ),以生成使用掩码自回归流转换正态分布的后验。
比较terior_vi_maf 和terior_mean_field 的形状和输出,从技术角度来看,似乎一切都应该起作用。
不幸的是,运行训练脚本(见底部)会引发以下错误消息:
有什么建议为什么会发生这种情况和/或我该如何解决这个问题?
python - 自定义 DistributionLambda 层中的变量未更新
我想构建一个自定义层,tensorflow-probability
然后我可以使用它来构建DenseVariational
层的后部。
作为第一步,我构建了以下后验,它相当于本教程中使用的平均场后验,但不是学习正态分布的参数,而是学习两个双射器的参数。
作为下一步,我认为对DistributionLambda
层进行子类化是个好主意,因为这样可以设置更复杂的双射器。不幸的是,我的初稿似乎不起作用。更具体地说,我仍然能够运行我的代码,但似乎loc_params
/scale_params
在训练期间没有更新,但我不知道为什么会这样。有什么建议么?