- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个图像处理问题,我想我可以用它来尝试更多地了解 PyMC3。我花了很多时间摆弄非线性求解器和蛮力方法,但到目前为止没有什么能让我开心。
我遇到的问题涉及一种复杂的方法,用于共同注册同一场景的两张图像,但以不同的方式记录。想想尝试将普通的黑白可见图像与热红外图像相匹配。或者,从医学成像的角度,考虑尝试将 MRI 数据与 X 射线数据相匹配。
为了简单起见,我可以用以下函数表示我的数据处理工作流程:
def process_and_compare(image_src, image_dst, parameters):
"""
Parameters
----------
image_src : 2D array
image_trg : 2D array
parameters : sequence of 7 scalars defining image transform
Output
------
metric : Scalar value indicating how well the transformed source image
matches up with the target image.
"""
image_src_warp = image_warper(image_src, parameters)
metric = compare_two_images(image_src_warp, image_trg)
return metric
此函数将两张图像和一个模型参数向量作为输入。一些复杂的数字运算发生在内部。完成后返回一个标量,指示模型(仅由参数向量定义)对齐两个图像的程度。源图像如何变形或两个图像如何比较的细节目前是黑盒子。最后,我最终想要的主要结果是与模型对应的扭曲图像,从而产生最佳匹配。但是现在,当我还在研究我的算法时,我认为通过可视化一些简单测试用例图像的模型参数的后验分布,我可以学到很多东西。我最初认为 PyMC 会让这一切变得简单,但当我开始研究实际的实现细节后,我有点困惑。
我查看了最近的 PyMC3 presentations由 Thomas Wiecki 撰写,还通读了 Cam Davidson-Pilon 的大部分精彩在线书籍.到目前为止,在我看来,PyMC3 与 PyMC2 相比的重要新功能(部分)是一个时髦的模型规范 syntax并自动使用 Theano用于处理加速。
在我目前看到的示例中,数据模型现在似乎经常使用新语法系统完全指定。但就我而言,我有这个更复杂的功能。
这是我的问题:
有人可以向我指出一个现有的 PyMC 示例,该示例涉及作为用户函数实现的黑盒数据模型吗? PyMC2 或 PyMC3 都很棒!
一旦我弄清楚如何使用 PyMC3 使其工作后,我是否能够在我的 Python 数据模型函数中深入了解 Theano 的好处?
最佳答案
您在上面指定的函数将作为确定性节点合并到 PyMC 模型中,它是根据某些(可能)随机父节点(您的参数)计算的。然后,该节点将在下游连接到提供拟合参数信息的可能性(观察到的随机节点)。例如,您可能有一些参数分布,它描述了与 process_and_compare
的度量输出对应的错误分布。
PyMC wiki在 PyMC 2 的一系列领域中有几个模型示例。主分支的 pymc/examples
文件夹中有 PyMC 3 示例。
就 Theano 而言,使用它作为 PyMC 的依赖项背后的动机是因为 MCMC 当前最先进的技术涉及使用梯度信息,因此我们需要能够计算任意梯度的能力楷模。我们希望最终能从它的 GPU 功能中获益,但目前它仅适用于渐变。 PyMC 的所有对象都是版本 3 中的 Theano 张量,因此如果您在构建贝叶斯模型的背景下对 Theano 有其他计划,那么它很可能会起作用。例如,我们可能最终想在 PyMC 中实现概率图形模型,因此 Theano 也可能会促进这一点。
关于python - 使用 PyMC3 进行多图像处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20200204/
我尝试移植简单的生存模型 from here (the first one in introduction)从 PyMC 2 到 PyMC 3。但是,我没有找到任何等效于“观察到”的装饰器,并且我尝试
我使用了基于 Clojure 的“圣公会”,我认为这对我不利。糟糕的文档和太小的社区无法寻求帮助。此外,我仍然无法熟悉基于 Scheme 的语言。所以我想将语言更改为基于 Python 的语言。 也许
我想对我在不使用 pymc 的情况下生成的示例使用 pymc 诊断和摘要功能。例如,我想在我自己的一组示例中使用 pymc 的 mc_error 例程。 一些 pymc 诊断函数可以采用 np.arr
我正在尝试在PyMC3中采样多个链。在PyMC2中,我将执行以下操作: for i in range(N): model.sample(iter=iter, burn=burn, thin =
有关如何使用PyMC将两个正态分布拟合到数据的信息,请参见a question on CrossValidated。 Cam.Davidson.Pilon的答案是使用伯努利分布将数据分配给两个法线之一
我正在尝试使用最大后验估计来估计泊松过程的速率,其中速率随时间变化。这是一个速率线性变化的简化示例 (λ = ax+b): import numpy as np import pymc # Obser
我正在用一个简单的多级模型尝试 PyMC3。当同时使用假数据和真实数据时,随机效应分布的轨迹会相互移动(见下图),并且似乎是同一轨迹的偏移量。这是 NUTS 的预期产物还是表明我的模型存在问题? 这是
我试图在通过 PyMC 的 MCMC 方法拟合变量时设置约束 例如,我在 PyMC 中定义了以下随机模型 import pymc as pm a=pm.Uniform('a',lower=0.,upp
尝试通过 conda 安装 pymc 时,我收到以下信息: C:\Anaconda>conda install -c https://conda.binstar.org/pymc pymc 正在获取包
如何在 PyMC3 中定义自定义似然?在 PyMC2 中,我可以使用 @pymc.potential .我尝试使用 pymc.Potential然而,在 PyMC3 中,似乎 bool 运算不能应用于
我正在尝试从随机 Petri 网模型中估计速率。我不明白为什么,但我得到了零概率错误,即使在给定我为速率定义的初始值的情况下,将数据数据与预期的观察次数完全对应。 例如,以下比率 [0.01, 2,
我正在尝试从 Infer.NET 移植一个模型,但我正在努力如何制作在 pymc3 中观察到的确定性变量? M,L ~ 伯努利 # doesn't work ... Deterministic("U
我已经开始试用 pymc3 并且需要实现多项逻辑回归模型。我研究了 twiecki 的教程,并且了解他对层次回归模型的实现(请参阅 https://twiecki.github.io/blog/201
我正在尝试使用 PyMC 实现一个非常简单的大数定律示例。目标是生成不同大小样本的许多样本平均值。例如,在下面的代码中,我重复采集 5 个样本组 (samples_to_average = 5),计算
这是 PyMC: Parameter estimation in a Markov system 的后续内容 我有一个由每个时间步的位置和速度定义的系统。系统的行为定义为: vel = vel + d
型号 我有以下统计模型: r_i ~ N(r | mu_i, sigma) mu_i = w . Q_i w ~ N(w | phi, Sigma) prior(phi, Sigma) = Norma
我正在尝试将负二项式混合物与 PyMC 拟合。看来我做错了什么,因为预测看起来与输入数据并不相似。问题可能出在负二项式参数的先验上。有什么建议吗? from sklearn.cluster i
我有三个关于装饰器的问题,我无法找到答案: Q1)PyMC 中装饰器的参数(@Deterministic,@Stochastic)表示什么? Q2) @pymc.stochastic(dtype=in
我正在使用an example of linear regression from bayesian methods for hackers但无法将其扩展到我的用途。 我对一个随机变量进行了观察,对该
我正在尝试拟合共享相同截距的多条线。 import numpy as np import pymc # Observations a_actual = np.array([[2., 5., 7.]])
我是一名优秀的程序员,十分优秀!