AF3 FourierEmbedding类源码解读

news/2025/1/25 4:30:04/

FourierEmbedding 是一个用于扩散条件的傅里叶嵌入类,其核心是将输入的时间步噪声强度或控制参数timestep)转换为高维的周期性特征。

源代码:

class FourierEmbedding(nn.Module):"""Fourier embedding for diffusion conditioning."""def __init__(self, embed_dim):super(FourierEmbedding, self).__init__()self.embed_dim = embed_dim# Randomly generate weight/bias once before trainingself.weight = nn.Parameter(torch.randn((1, embed_dim)))self.bias = nn.Parameter(torch.randn((1, embed_dim)))def forward(self, t):"""Compute embeddings"""two_pi = torch.tensor(2 * 3.1415, device=t.device, dtype=t.dtype)return torch.cos(two_pi * (t * self.weight + self.bias))

类代码解读:

1. 类的功能

该模块的主要目的是通过傅里叶变换,将输入的时间步嵌入到一个周期性的高维特征空间。这种处理方式在扩散模型中尤为重要,因为时间步本身是一个标量(单一数值),通过傅里叶嵌入,模型能够更好地捕获时间的周期性模式。

2. __init__ 方法
def __init__(self, embed_dim):super(FourierEmbedding, self).__init__()self.embed_dim = embed_dim# Randomly generate weight/bias once before trainingself.weight = nn.Parameter(torch.randn((1, embed_dim)))self.bias = nn.Parameter(torch.randn((1, embed_dim)))
功能
  • 初始化傅里叶嵌入模块。
  • 生成随机初始化的权重和偏置(weight 和 bias),用于控制傅里叶变换的频率和相位。
重要参数
  • embed_dim:
    • 表示嵌入的维度,即输出特征的大小。
    • 在扩散模型中,较大的 e

http://www.ppmy.cn/news/1565951.html

相关文章

仿 RabbitMQ 的消息队列3(实战项目)

七. 消息存储设计 上一篇博客已经将消息统计文件的读写代码实现了,下一步我们将实现创建队列文件和目录。 实现创建队列文件和目录 初始化 0\t0 这样的初始值. //创建队列对应的文件和目录:public void createQueueFile(String queueName) throws IO…

Flask基础和URL映射

目录 1. Flask介绍 2. Flask第一个应用程序 3. Flask运行方式 4. Flask中DEBUG模式 5. Flask环境参数的加载 6. Flask路径参数的使用 7. Flask路径参数类型 8. Flask路径参数类型转换底层 9. Flask自定义路由转换器 自定义步骤: 10. 自定义转换 to_python 函数 11. …

如何有效进行软件集成测试?常见的集成测试工具分享

在现代软件开发的过程中,集成测试是确保系统各部分有效协同工作的关键步骤。软件集成测试是指在软件开发过程中,将各个模块或组件组合在一起进行测试,以验证它们之间的交互是否符合设计要求和业务逻辑。集成测试的核心目标是发现不同模块互动…

服务器日志自动上传到阿里云OSS备份

背景 公司服务器磁盘空间有限,只能存近15天日志,但是有时需要查看几个月前的日志,需要将服务器日志定时备份到某个地方,需要查询的时候有地方可查。 针对这个问题,想到3个解决方法: 1、买一个配置比较低…

蒙操作系统(HarmonyOS)

鸿蒙操作系统(HarmonyOS)是由华为技术有限公司开发的面向未来、面向全场景的分布式操作系统。它旨在为各种不同类型的设备提供统一的操作系统和无缝的智能体验,从智能手机到可穿戴设备,再到智能家居产品等。在鸿蒙的应用生态中&am…

PL/SQL语言的图形用户界面

PL/SQL语言的图形用户界面 引言 随着信息技术的迅猛发展,数据库系统在现代应用程序中的重要性愈加凸显。PL/SQL(Procedural Language/Structured Query Language)作为Oracle数据库的一种程序设计语言,以其强大的数据处理能力和高…

一款自适应的 AI 集成开发环境 (IDE)—Trae

Trae 是一款自适应的 AI 集成开发环境 (IDE),通过与您协作工作,帮助您更高效地运行并加速开发进程。 Builder模式 聊天式项目构建,让开发更快速 在构建者模式下,Trae 会自动分解并执行任务,优化每个步骤&#xff0c…

谷歌泰坦:Transformer之后的AI时代?

介绍 2017年,谷歌发布了一篇具有革命性意义的论文,题为《Attention is All You Need》(注意力是你所需要的一切)。这篇论文引发了我们今天所经历的AI革命,并引入了Transformer模型。Transformer已经成为如今几乎所有顶…