当前位置: 首页 > 知识库问答 >
问题:

使用 tfp.mcmc.大都会黑客作为物理模型

南宫凯康
2023-03-14

我是Tensorflow新手,想使用Tensorflow概率库来模拟一个物理问题。Tensorflow附带了tfp.mcmc.MetropolisHastings函数,这是我想使用的算法

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

共有1个答案

温翔宇
2023-03-14

我刚刚回答了一个类似的问题使用张量流概率的RandomWalkMetropolis函数执行随机行走步骤

RandomWalkMetropolis接受构造函数参数new_state_fn,这是一个自定义建议函数,它使用以前的状态并返回建议。

# TF/TFP Imports
!pip install --quiet tfp-nightly tf-nightly
import tensorflow.compat.v2 as tf
tf.enable_v2_behavior()
import tensorflow_probability as tfp
tfd = tfp.distributions
tfb = tfp.bijectors
import matplotlib.pyplot as plt


def log_prob(x):
  return tfd.Normal(0, 1).log_prob(x)

def custom_proposal(state, extra):
  return state + tfd.Uniform(-.5, .75).sample()

kernel = tfp.mcmc.RandomWalkMetropolis(log_prob, new_state_fn=custom_proposal)
state = tfd.Normal(0, 1).sample()
extra = kernel.bootstrap_results(state)
samples = []
for _ in range(1000):
  state, extra = kernel.one_step(state, extra)
  samples.append(state)

plt.hist(samples, bins=20)

 类似资料:
  • 本文向大家介绍为什么黑客都用python(123个黑客必备的Python工具),包括了为什么黑客都用python(123个黑客必备的Python工具)的使用技巧和注意事项,需要的朋友参考一下 文章开始前首先让我们来了解一下什么是Python。 Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 重点是,Python 是一种对初学者非常友好的语言,从应用程序开发到文字处理

  • 在这学期里,绝影他们班上又出了个不得不提的人物――鸡哥。 鸡哥本来长相很老实,也就是“中国传统式的农民”,但他的不安分和他的长相成鲜明的反比。他老爸极其神秘,是个有正当工作并且很有钱的人,这样来看,莫非是XXX银行行长。后来绝影也有机会见到了他老爸,他和他老爸唯一的区别是他有个好老爸,而他老爸没有。 毫无疑问,鸡哥的电脑在班上甚至这栋寝室都是最好的,那19寸的Samsun显示器就充分说明了问题,据

  • 为了更好的介绍如何使用物理,将通过以下模块进行介绍: 模块 描述 碰撞组件 介绍了Collider组件的设计,以及与RigidBody组件的关系 物理材质 介绍了 Cocos Creator 3D 中的物理材质资源 刚体组件 介绍了RigidBody组件的一些代码使用示例 物理事件 介绍了 Cocos Creator 3D 中的物理事件 分组掩码 介绍了物理过滤检测中分组掩码的使用 射线检测 介绍

  • 问题内容: 我有服务器和客户端模板的想法,但是ust.js使我有些困惑。 为了将灰尘.js用于客户端模板,您需要三个步骤: 组装模板 加载模板 渲染模板 对? 但是模板从哪里来?我看到了两种不同的方法: …两者都在DOM中。哪个是正确的? 我还注意到您可以通过ajax加载模板,因此该模板不会在DOM中显示,但是我不知道该怎么做。 另外,我目前正在使用玉作为快速视图引擎。是否有必要切换到dust.j

  • 我想写一个基于Netty的客户端连接到服务器。客户端将在带有HTTP代理的公司防火墙后面运行。 如果 Netty 是否支持通过代理 OOB 进行连接,我找不到任何信息。 在以前的情况下,当我编写客户端时,我总是在创建套接字时自己完成这项支持,但Netty是一个流行的框架,我希望它能够支持通过代理的连接。 (我要实现的协议不是基于HTTP的)

  • Navicat Data Modeler 让你创建物理模型,包括数据库或模式的表、字段、视图、外键约束和其他物理属性。 若要创建一个物理模型,从菜单栏选择“文件”->“新建”。在“新建模型”窗口中,选择“模型类型”为“物理”,以及选择目标“数据库”和“版本”。 你也可以使用下列的功能来创建一个物理模型: 从数据库导入 - 从现有的数据库/模式或 ODBC 数据源逆向工程。 模型转换 - 从一个逻辑