自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (3)
  • 收藏
  • 关注

原创 BatchNorm &LayerNorm

很早以前就遇到了 BatchNorm 和 LayerNorm, 当时只是粗略地知道它们是对数据进行了标准化: x = (x−μ)/σ. 这当然很简单, 但实际的数据是比较复杂的. 对于 CV 任务的数据 image 而言, 一个 batch 的数据通常是这样的: [B, C, H, W]; 对于 NLP 任务的数据 sentence 而言, 一个 batch 的数据通常是这样的: [B, T, D]. 那 XXNorm 是怎么算的? 肯定不是一下算整个 batch 的所有数的.

2024-07-10 22:32:07 535

原创 fairseq (Facebook AI Research) 包

最近在看一个用 RNNs 网络做Translation 任务的程序, 关于数据处理部分, 主要用到工具包和fairseq, 前者主要是对文本进行分词处理, 后者则是对已分词的文本进行二进制化和快速加载. 包越方便使用, 就说明包装得越狠, 也就越令人一头雾水, 本文简要记录学习过程.

2024-06-24 16:09:06 463

原创 深入学习 torch.distributions

前几天分几篇博文精细地讲述了《von Mises-Fisher 分布》, 以及相应的 PyTorch 实现《von Mises-Fisher Distribution (代码解析)》, 其中以 Uniform 分布为例简要介绍了 torch.distributions 包的用法. 本以为已经可以了, 但这两天看到论文 The Power Spherical distribution 的代码, 又被其实现分布的方式所吸引.

2024-05-25 10:10:46 847

翻译 Box–Muller Transform

这几天看了那么多采样, 回过头来, 仍然不知道最基本的 Normal Distribution 怎么采样. 于是查看, 有很多种采样方法, 不过多数还是要, 或者使用 rejection method, 似乎只有Box–Mullermethod 是精确的解析式方法.但 Wikipedia 对其的介绍很简洁, 看不出个所以然来. 即使是, 也讲的一头雾水. 最终看到 B 站视频, 才豁然开朗, 这里记录其推导过程.

2024-05-24 22:30:25 53

原创 PyTorch 中 Distribution 采样对参数的梯度

torch.distribution 模块实现了大多数常见的分布. 对于复杂的分布, 你可以继承基类 Distribution 自己实现. 如果参数设置为 requires_grad=True; 不必纠结梯度是怎样的, 它的计算要根据简单分布的 Sampling 和 Transform 参数两部分得到.

2024-05-21 07:42:55 897

原创 Beta 分布和 Gamma 分布

已知 X,Y 相互独立, 都服从 Gamma 分布, 请推导 X/(X+Y) 服从 Beta 分布.

2024-05-17 15:25:17 1228 1

原创 von Mises-Fisher Distribution (代码解析)

von Mises Fisher 分布的代码解析.

2024-04-20 22:28:35 1336 2

原创 von Mises-Fisher Distribution (Appendix 2)

von Mises Fisher Distribution 公式推导

2024-04-19 22:35:25 762

原创 von Mises-Fisher Distribution (Appendix 1)

von Mises Fisher Distribution 公式推导

2024-04-10 09:24:10 440

原创 von Mises-Fisher Distribution

von Mises-Fisher 分布的均值、熵、KL 散度以及采样等的 PyTorch 实现.

2024-03-21 16:48:25 1306 1

原创 decorator & register

最近看到 Python 的装饰器,于是初步调查了其用法。

2024-03-13 16:45:02 934

原创 Modified Bessel Function of the First Kind

最近接触到 von Mises–Fisher distribution, 其概率密度函数归一化常数中含有第一类修正贝塞尔函数. 查阅 Wikipedia, 其公式有定义式和积分式. 其计算比较麻烦, 更不用说求导了, 好在有递推式, 本文对其递推式进行推导。

2024-03-07 20:30:18 970

原创 PyTorch 中的 apply [autograd.Function]

源码: 是 PyTorch 中用于存储子模块的容器,而 方法可以应用一个函数到 ModuleList 中的每个子模块。具体来说, 方法会递归地将指定的函数应用到 ModuleList 中的每个子模块以及每个子模块的子模块上。这个方法的语法如下:其中 是要应用的函数,它接受一个 参数并且没有返回值。在 apply() 方法被调用后,会遍历 ModuleList 中的每个子模块,并把这个函数应用到每个子模块上。例如,假设有一个 ModuleList 包含了若干线性层(Linear),我们想要初始化所有

2024-03-03 09:27:59 1472

原创 torch.utils.data

问题,就不追究了,反正尽量用 numpy 或 pytorch tensor 吧。的其他参数,就会懵逼。那就看一看官方文档,了解一下。然而,背后到底干了什么,我们不清楚,甚至遇到。访问数据时,由于 Python 对象的。有一个需要注意的地方是内存增长问题,当。上图是数据加载的整体框架图,官网说。访问,后者的数据只能通过迭代器。的数据集的访问顺序由迭代器决定。提供一批下标,取得一批数据后由。并行地加载数据,并通过。

2024-02-17 20:34:50 1003

原创 argparse

在命令窗口运行 Python 程序时,有时需要传入一些参数,就用到了argparse模块,它有非常强的解析命令行参数的能力。原始的命令行参数获取方式sys.argv;argparse的基本用法;背后的运作机制;shell编程;更好的方式;

2024-01-10 17:19:22 877

原创 Python 标准库中的 csv 包

本文将举例说明 `csv` 包的用法,然后补充一些必要的说明。

2024-01-04 22:26:20 1285

原创 PIL/Pillow

PIL(Python Imaging Library)是一个用于图像处理的 Python 库。它提供了广泛的功能,包括图像加载、保存、调整大小、裁剪、旋转、滤镜应用等。由于 PIL 的开发停止在 2009 年,因此推荐使用其后续的维护版本 Pillow。Pillow 是一个兼容 PIL 接口的现代图像处理库,提供更多功能和更好的性能。

2023-12-20 11:14:25 1349

原创 torch.gather(...)

有点绕,很多博客画各种图讲各种故事来解释如何从 input 张量中 gather 位置 index 处的值,乱七八糟,我是都没看明白。所以去官网看了文档。

2023-12-18 21:08:29 1066

原创 pytorch 数据预加载

本文介绍一个工具,它包装,接收该类的一个实例loader,启动一个线程t,创建一个队列qt将loader中的数据预加载到队列q中, 以在模型计算时也能启动启动数据加载程序, 节省数据加载时间。"""** 包装 torch.utils.data.DataLoader, 接收该类的一个实例 loader, 启动一个线程 t, 创建一个队列 qt 将 loader 中的数据预加载到队列 q 中, 以在模型计算时也能启动启动数据加载程序, 节省数据加载时间。

2023-12-04 23:37:58 1646

原创 迭代器与生成器

..或者next(it)和方法;方法;生成器函数;

2023-11-26 22:03:16 140

原创 Python 上下文管理器

环境时,文件会自动关闭。这东西叫上下文管理器,现在让让我们学习一下这个神奇的家伙。,讲的比较简单易懂,我就是看这篇博文学习上下文管理器的。在 Python 中读写文件,我们都用。,这样不用担心忘记关闭文件流,因为离开。那应该能返回其他东西吧?

2023-11-23 22:50:50 90

原创 Python 包 __init__.py

文件,Python 也会把该目录当作普通包处理,这被称为 “namespace package”,其主要目标是支持更为复杂的包结构。是 Python 中的一个特殊文件,它存在于每个 Python 包中。这个文件在 Python 中是非常重要的,它告诉 Python,该目录应被视为一个 Python 包。是一个特殊的文件,用于标识该目录是一个 Python 包。文件的目录,并将其视为一个有效的包。然而,在旧版本的 Python(3.2及之前)中,请注意,随着 Python 3.3 版本的引入,

2023-11-22 11:04:21 165

原创 python 中的 logging 详解

什么是 logging.StreamHandler()?它为什么将信息输出到控制台?logging.getLogger().addHandler(console) 到底做了什么?想解答这些问题,探索 logging 更丰富的用法,于是我去查看了官方文档教程,在这里对这次学习进行记录整理。本文不追究文档的细节,对基础的知识也默认已知,主要目的是建立对 logging 整体架构和工作方式的认识。

2023-11-16 12:57:44 1658 3

原创 python 进度条

最近接触到了两个 Python 进度条工具:qqdm 和 tqdm 在此记录学习过程。

2023-11-08 23:32:29 78

原创 Radon 变换与边缘概率分布

在学习最优传输(Optimal Transport)时,接触到了 Sliced-Wasserstein Distance (SWD),顿时懵逼了,它是啥?在 1-D 情况下,Wasserstein Distance 计算非常简单,不必进行复杂的求解,直接就有闭式解。SWD 满足所有度量公理,三角不等式继承自 WD,正定性和对称性也是产自 WD,这些都比较直观,不多说了。假设上图中的点的密度代表概率密度,红线是投影方向,虚线对应不同的。,即一个个要积分的线,此时线积分结果就是虚线所穿过的点数,即。

2023-10-23 23:26:14 128

原创 One-dimensional Wasserstein Distance

其实不必担心从右边一点点处挖的时候不够挖,你可以假设后面的即使不够,它也从右边的右边挖过了,再不然假设从右端向左扫描,向左推挖,总能符合实际意义】它们的直观解释差别还挺大的,前者是时刻保持两者扫描过的。,若想运输 mass 以使扫描过的测度相同,则需要的 mass 量为。(还可以从右侧想,右侧的测度分文没动,左边又一样,这个差可不就是。依然从其右侧一点点挖,以使扫描过的部分测度一样,挖的量为。先看第一个式子,它是扫描 q 进行积分的,进行积分的,如下图,扫描至。,对应着已扫描过的空间的测度。

2023-10-22 21:37:42 83

转载 概率论中密度函数变换

概率密度函数转换!

2023-10-06 22:25:06 907

原创 对偶线性规划

下表提供了对偶问题的具体构建方法,这应该是一个结论,但我们不知所以然。当然,照着做确实能把一个线性规划问题转换为其对偶问题,但 why?这只是对标准形式的推导,稍微变化就可以对照上表中的各种情况。这可能经过练习熟练后,才适合这么做,否则一头雾水,也容易出错。单凭这么一段文字,很难想象到底发生了什么,只知道。将原线性规划问题变为了另一个线性规划问题。,那么按照构建表,对偶问题应该是。,就得到了表右边对偶问题。(2) 对于不等式条件。【本质上是拉格朗日对偶】(1) 对于等式条件。

2023-09-20 09:15:00 327

原创 积分变换(Integral Transform)

积分变换:通过积分将一个函数从它的原始函数空间映射到另一个函数空间,在新的函数空间中,原始函数的一些性质可能比在原始函数空间中更容易表征和操作。

2023-09-09 23:37:54 2002

原创 OT2: Wasserstein Generative Adversarial Networks

为学习最优传输问题(Optimal Transport),拜读了博客《最优运输(Optimal Transfort):从理论到填补的应用》,博文里简要介绍了三篇经典论文,本系列博文打算精读之,下面是第三篇。认知有限,有不理解之处,也可能有理解不当或错误之处,请读者多多指教。

2023-08-26 15:36:14 151

原创 OT3: Missing Data Imputation using Optimal Transport

为学习最优传输问题(Optimal Transport),拜读了博客《最优运输(Optimal Transfort):从理论到填补的应用》,博文里简要介绍了三篇经典论文,本系列博文打算精读之,下面是第三篇。认知有限,有不理解之处,也可能有理解不当或错误之处,请读者多多指教。

2023-08-26 15:28:25 184

原创 希尔伯特空间(Hilbert space)

先看 Wikipedia 中对 Hilbert Spaces 的 Definition:首先最熟悉的希尔伯特空间是欧式空间,以R3为例,它定义了点积,给定xy∈R3,它们的点积为:点积满足如下性质:即对称性、线性和正定性。这一段讲述什么是内积:像点积这样的运算,它作用在两个向量上,且满足以上三条性质,就叫内积。给向量空间安装一个内积,就成了内积空间。有限维的内积空间是一个 Hilbert Space。

2023-07-25 14:42:48 2848 1

原创 流形介绍(Manifolds: A Gentle Introduction)[续]

度规张量和之前学的度量矩阵其实是一回事;度规张量随 p∈Mp 的平滑性其实是其实是基向量之间内积的平滑性;有了度规张量,才有了内积、范数、长度等概念。

2023-07-19 14:44:01 194

原创 紧空间(Compact Space)

紧的概念来源于欧式空间的有界闭集,在探索它的性质之后,想对其进行泛化推广。然而,到了一般拓扑空间中,就只能用 “有限开覆盖” 去定义紧了,而且相当抽象,引发了好几个关于紧的概念,一时难以接受。

2023-07-12 15:58:37 1190 1

翻译 流形介绍(Manifolds: A Gentle Introduction)

这篇博客在讲述切向量与切空间时太过简略,以至于把我困住,甚至让我的大脑内部产生激烈的矛盾而头疼,于是借了本书《微分流形初步》(第二版,陈维桓),加以辅助,才得以理解了切向量。

2023-07-02 17:48:17 1463

原创 李群(Lie Group)

设。

2023-06-28 09:56:21 285

原创 Topological Space

比较扯的是,既然是根据度量空间中开集的性质对其进行抽象推广,那你也起个新的名字啊,就好比我们现在对老虎很感兴趣,发现了老虎的一些特点:有锋利的牙齿、有锋利的爪子、奔跑速度很快,根据这三个特点进行抽象,我们得到一个新概念 “老虎”,以后我们见了符合这三个特点的猫咪、狮子啥的,都称为 “老虎”。。。而不是叫猫科动物,是不是很别扭?

2023-06-07 19:47:01 217

原创 OT1:Sinkhorn Distances: Lightspeed Computation of Optimal Transport

为学习最优传输问题(Optimal Transport),拜读了博客《最优运输(Optimal Transfort):从理论到填补的应用》,博文里简要介绍了三篇经典论文,本系列博文打算精读。

2023-05-17 17:03:59 1303 5

原创 最优传输中的离散测度

这段时间在了解一些最优传输方面的知识,看博客《最优运输(Optimal Transfort):从理论到填补的应用》,其中的离散测度(Discrete measures)把我给整懵逼了

2023-04-26 15:04:20 469 1

原创 EM 算法抛硬币实例解析《统计学习方法》

最大期望算法(Expectation-Maximization Algorithm, EM),或 Dempster-Laird-Rubin 算法,是一类通过迭代进行极大似然估计的优化算法,通常用于对包含隐变量(latent variable)或缺失数据(incomplete-data)的概率模型进行参数估计。具体就不说了,看了李航《统计学习方法》讲的 EM 算法,讲得很棒,但对抛硬币的例子迷茫了好久,书中只给了答案,没有具体的推导过程。后来,琢磨抛硬币的计算时,却陷入苦恼。

2023-04-11 15:54:26 147

Python logging 日志的模块化使用示例

多模块情况下使用 logging,我窃以为官方所建议的 logging.getLogger(__name__) 作用如下: loggers 的树形结构与模块结构完全一致,每个模块使用自己的 logger 记录日志,并向上层逐渐传播,直到 root logger。如此一来,结果就是:每个模块有自己的日志,root logger 记录全局,对于中间的包,如果它的 __init__.py 中有 logger 的话,会记录自身的日志以及其下层的 logger 日志; 那如果包的 __init__.py 中没有 logger 呢?这就要看一看 PlaceHolder 了,它只是一个占位符,其下层的 loggers 会直接跳过它(可能会跳过多个),直接以更上级的 logger 为 parent,直到 root logger。【这个可以通过查看 logging.Manager 中的 _fixupParents(self, alogger) 和 _fixupChildren(self, ph, alogger) 两个函数得知树形结构的管理模式】 这对大型项目来说确实有用,当程序足够大时,要记录的日志

2023-11-22

KNN算法,KD树建立与搜索python实现

KNN算法,KD树建立与搜索python实现

2022-10-10

PyCharm代码颜色

PyCharm的默认代码颜色仅仅是一些关键字高亮,但是更多的代码颜色可以提高阅读代码的效率以及更加赏心悦目,于是设置了一些代码颜色,分享给大家

2019-04-13

IDEA设置Eclipse风格代码主题

从Eclipse换成IDEA的朋友会受不了代码颜色的改变。IDEA默认代码主题高亮太少,造成代码不易阅读的麻烦,所以本人按照Eclipse的代码颜色逐个修改IDEA的代码颜色,RGB值都完全一样,import settings 就可以了。

2019-04-12

图灵机用作转换器计算x的y次幂,含C++代码

形式语言与自动机,图灵机的C++代码实现,用作转换器,有计算功能,X的y次幂

2018-11-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除