深入学习 torch.distributions
0. 引言
前几天分几篇博文精细地讲述了《von Mises-Fisher 分布》, 以及相应的 PyTorch 实现《von Mises-Fisher Distribution (代码解析)》, 其中以 Uniform 分布为例简要介绍了 torch.distributions 包的用法. 本以为已经可以了, 但这两天看到论文 The Power Spherical distribution 的代码, 又被其实现分布的方式所吸引.
Power Spherical 分布与 von Mises Fisher 分布类似, 只不过将后者概率密度函数中的指数函数换成了多项式函数: f p ( x ; μ , κ ) ∝ e x p ( κ μ ⊺ x ) ⇓ f p ( x ; μ , κ ) ∝ ( 1 + μ ⊺ x ) κ \begin{aligned} f_p(\bm{x}; \bm{\mu}, \kappa) &\propto exp(\kappa \bm{\mu}^\intercal \bm{x}) \\ &\Downarrow\\ f_p(\bm{x}; \bm{\mu}, \kappa) &\propto (1+\bm{\mu}^\intercal \bm{x})^\kappa \\ \end{aligned} fp(x;μ,κ)fp(x;μ,κ)∝exp(κμ⊺x)⇓∝(1+μ⊺x)κ 采样框架基本一致, 且这么做可以使边缘 t t t 的线性变换 t + 1 2 ∼ B e t a ( p − 1 2 + κ , p − 1 2 ) \frac{t+1}{2} \sim Beta(\frac{p-1}{2}+\kappa, \frac{p-1}{2}) 2t+1∼Beta(2p−1+κ,2p−1), 从而避免了接受-拒绝采样过程.
当然, 按照之前的 VonMisesFisher 的写法, 这个 t 的采样大概是这样:
z = beta.sample(sample_shape)
t = 2 * z - 1
但现在我遇到了这种写法:
class MarginalTDistribution(tds.TransformedDistribution):arg_constraints = {'dim': constraints.positive_integer,'scale': constraints.positive,}has_rsample = Truedef __init__(self, dim, scale, validate_args=None):self.dim = dimself.scale = scalesuper().__init__(tds.Beta( # 用 Beta 分布转换, z 服从 Beta(α+κ,β)(dim - 1) / 2 + scale, (dim - 1) / 2, validate_args=validate_args),transforms=tds.AffineTransform(loc=-1, scale=2), # t=2z-1 是想要的边缘分布随机数)
然后就可以进行对 t t t 的采样了.

我们可以看到其基本架构, 本文将详细解析其内部的具体细节.
相关文章:
深入学习 torch.distributions
0. 引言 前几天分几篇博文精细地讲述了《von Mises-Fisher 分布》, 以及相应的 PyTorch 实现《von Mises-Fisher Distribution (代码解析)》, 其中以 Uniform 分布为例简要介绍了 torch.distributions 包的用法. 本以为已经可以了, 但这两天看到论文 The Power Spherical dist…...
Java中的判断校验非空问题
目录 字符串 字符串是空的情况 字符串不是空的情况 对象 对象是空的情况 对象不是空的情况 前端传的 int ,double类型等等 Optional 判断情况 https://www.cnblogs.com/zhangboyu/p/7580262.htmlhttps://www.cnblogs.com/zhangboyu/p/7580262.html 值为空的情况,不会…...
webman使用summernote富文本编辑器
前言 Summernote富文本编辑器功能强大,可以直接从word直接复制内容过来而不破坏原有的文档格式,非常适合做商品详情等内容的编辑工具。本文将展示如何在php高性能框架webman中使用summernote编辑器。 下载 去Bootstrap 中文网、Summernote、jQuery官网…...
jQuery里添加事件 (代码)
直接上代码 <!DOCTYPE html> <html><head></head><body><input type"text" placeholder"城市" id"city" /><input type"button" value"添加" id"btnAdd" /><ul id…...
Java数组的使用
Java数组的使用 前言一、数组基本用法什么是数组注意事项创建数组基本语法代码示例注意事项 数组的使用代码示例获取长度 & 访问元素注意事项 下标越界遍历数组使用 for-each 遍历数组 二、数组作为方法的参数基本用法代码示例打印数组内容 理解引用类型代码示例参数传内置…...
如何参与github开源项目并提交PR
👽System.out.println(“👋🏼嗨,大家好,我是代码不会敲的小符,目前工作于上海某电商服务公司…”); 📚System.out.println(“🎈如果文章中有错误的地方,恳请大家指正&…...
拼多多携手中国农业大学,投建陕西佛坪山茱萸科技小院
5月16日下午,中国农业大学陕西佛坪山茱萸科技小院在佛坪县银厂沟村揭牌。佛坪县素有“中国山茱萸之乡”的美誉,是全国山茱萸三大基地之一,当地山茱萸是国家地理标志产品,山茱萸肉产量位居全国第二。 为充分发挥佛坪县得天独厚的山…...
技术前沿 |【自回归视觉模型ImageGPT】
自回归视觉模型ImageGPT 引言一、ImageGPT的基本原理与创新之处二、ImageGPT在图像生成、理解等视觉任务上的应用三、ImageGPT对后续视觉Transformer模型发展的影响四、ImageGPT的深入应用 引言 在人工智能的飞速发展中,视觉模型作为其中一个重要的分支,…...
Manjaro linux install RedisGUI (RedisInsight)亲测2024-5-25
Arch 用户仓库(Arch User Repository)(AUR) 是用户选择 基于 Arch Linux 的系统 的一个主要理由。你可以在 AUR 中访问到大量的附加软件。 (LCTT 译注:AUR 中的 PKGBUILD 均为用户上传且未经审核,使用者需要自负责任,在构建软件包前请注意检…...
debian/control文件中常见字段的介绍
1 简介 在Debian或基于Debian的发行版中,debian/control文件是软件包管理的关键部分。它包含了软件包的各种元数据和安装脚本信息,用于软件包管理系统(如dpkg)识别如何处理该软件包。以下是debian/control文件中常见字段的详细介…...
c++题目_农场和奶牛
𝐵B 头奶牛 (1≤𝐵≤25000)(1≤B≤25000),有 𝑁(2𝐵≤𝑁≤50000)N(2B≤N≤50000) 个农场,编号 11 到 𝑁N,有 𝑀(𝑁−1≤𝑀≤100000)M(…...
DDD领域设计在“图生代码”中的应用实践
前言 领域驱动设计(简称 ddd)概念来源于2004年著名建模专家Eric Evans 发表的他最具影响力的书籍:《领域驱动设计——软件核心复杂性应对之道》(Domain-Driven Design –Tackling Complexity in the Heart of Software),简称Evans DDD。领域…...
LabVIEW舱段测控系统开发
LabVIEW舱段测控系统开发 在航空技术飞速发展的当下,对于航空器的测控系统的需求日益增加,特别是对舱段测控系统的设计与实现。开发了一款基于LabVIEW开发的舱段测控系统,包括系统设计需求、系统组成、工作原理以及系统实现等方面。 开发了…...
[leetcode]第 n个丑数
我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。 示例: 输入: n 10 输出: 12 解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。 1 2 3 说明: 1 是丑数。 n 不超过1690。 class Solution {public…...
STM32-电灯,仿真
目录 1.配置vscode 2.新创建软件工程 3.仿真 4.源码 5.运行效果 1.配置vscode http://t.csdnimg.cn/BvCLx 安装 C/C Extension Pack 安装 Embedded IDE 安装 Keil MDK 配置路径 2.新创建软件工程 下拉找到对应的 输入项目名字,选择项目所在文件夹即可 3.仿真 一路新…...
《SpringBoot》系列文章目录
SpringBoot是由Pivotal团队提供的全新框架,旨在简化新Spring应用的初始搭建以及开发过程。以下是一些关于SpringBoot的详细介绍: 设计目的:SpringBoot通过特定的方式来进行配置,使得开发人员不再需要定义样板化的配置,…...
牛客小白月赛94VP
1.签到:https://ac.nowcoder.com/acm/contest/82957/A 下面是AC代码: #include<bits/stdc.h> using namespace std; map<int,int> mp; int main() {for(int i1;i<9;i){int x;cin>>x;mp[i]x;}string s;cin>>s;s s;for(int i…...
php 亚马逊AWS-S3对象存储上传文件
最近做国外项目的时候,需要把文件上传到AWS-S3对象存储空间里,下面整理一下上传方法,和碰到的问题 代码 /*** 亚马逊oss Aws上传* composer require aws/aws-sdk-php* param $filePath* param $ossPath* return array* author wzb* data 202…...
electron-01 基础及NPM相关配置
electron基础 结构 ChromiumNode.jsNative apis 工作流程 启动APP主进程创建windowWin加载界面操作 主进程 package.json中main属性对应的文件一个应用对应一个主进程只有主进程可以进行GUI的API操作 渲染进程 windows中展示的界面通过渲染进程表现一个应用可以有多个渲…...
Foxit PDF Editor Pro福昕PDF编辑器Pro:重塑您的文档编辑体验
在信息爆炸的时代,PDF文件因其跨平台、格式稳定等特性,成为我们日常工作与学习中不可或缺的一部分。然而,面对这些文件时,许多人都会遇到一个共同的难题:如何高效、专业地编辑PDF内容?今天,我要…...
Pixel Aurora Engine效果展示:像素极光系统生成的赛博忍者角色系列
Pixel Aurora Engine效果展示:像素极光系统生成的赛博忍者角色系列 1. 像素极光引擎简介 Pixel Aurora(像素极光)是一款基于AI扩散模型的高端绘图工作站,采用独特的复古像素游戏风格界面设计。这款工具将现代AI技术与经典8-bit美…...
cool-admin(midway版)数据库索引维护:重建索引与碎片整理
cool-admin(midway版)数据库索引维护:重建索引与碎片整理 【免费下载链接】cool-admin-midway 🔥 cool-admin(midway版)一个很酷的后台权限管理框架,模块化、插件化、CRUD极速开发,永久开源免费,基于midway.js 3.x、ty…...
千问3.5-9B视觉模型快速部署指南:单卡RTX 4090D实测可用
千问3.5-9B视觉模型快速部署指南:单卡RTX 4090D实测可用 1. 开篇:为什么选择千问3.5-9B视觉模型? 如果你正在寻找一个能够理解图片内容的中文多模态模型,千问3.5-9B视觉版(Qwen3.5-9B-VL)值得你关注。这个…...
丹青幻境功能全解析:宣纸UI、动态LoRA、文艺交互实操
丹青幻境功能全解析:宣纸UI、动态LoRA、文艺交互实操 1. 数字艺术创作新范式 在数字艺术创作领域,丹青幻境Z-Image Atelier带来了一场界面革命。这款工具将4090显卡的强大算力隐藏在仿古宣纸界面背后,为创作者提供了前所未有的沉浸式体验。…...
终极指南:如何用智能工具轻松突破内容访问限制
终极指南:如何用智能工具轻松突破内容访问限制 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 内容访问突破工具是现代数字工作者的必备利器,它能帮助研究人员…...
张量维度操控心法:从reshape到升维降维,吃透PyTorch形状操作的底层逻辑
✨ 张量维度操控心法:从reshape到升维降维,吃透PyTorch形状操作的底层逻辑🔐 张量形状操作的黄金法则:形状是视角,内容是本质🔧 reshape函数:零侵入的形状重塑神器核心原理与执行规则实操代码与…...
windows 下使用 arthas 排查接口慢的问题
文章目录1、windows 如何安装 arthas2、在排查问题之前,先启动 arthas3、排查某个慢接口&方法4、更多功能参考官网文档1、windows 如何安装 arthas 进入 https://github.com/alibaba/arthas/releases,点击 arthas-bin.zip 进行下载。 解压下载完成后…...
OpenClaw创始人加入OpenAI:这不是跳槽新闻,是整个AI行业换挡的信号
OpenClaw创始人加入OpenAI:这不是跳槽新闻,是整个AI行业换挡的信号摘要OpenClaw创始人Peter Steinberger正式加入OpenAI,项目移交开源基金会。Sam Altman亲自官宣,称他是"天才"。这件事的真正意义不在人事变动ÿ…...
从预测到归因:手把手教你用因果森林(grf)做特征重要性分析与亚组发现
从预测到归因:手把手教你用因果森林(grf)做特征重要性分析与亚组发现 在金融风控、个性化营销和医疗疗效评估等领域,我们常常面临一个关键问题:干预措施的效果是否存在显著差异?传统分析方法如A/B测试能告诉…...
工业以太网双雄:从协议原理到选型落地,EtherCAT与PROFINET实战解析
1. 工业以太网的双雄之争:为什么选型这么难? 第一次接触工业以太网协议选型时,我盯着EtherCAT和PROFINET的参数表发呆了整整一上午。就像面对两个各有所长的武林高手,一个轻功了得,一个内力深厚,实在难以抉…...
