AF3 ConditionedTransitionBlock类源码解读

news/2025/1/23 11:49:13/

ConditionedTransitionBlock类的核心功能是对输入特征进行非线性变换,并通过条件输入(s)自适应地调整特征的表示。
主要模块包括:

  1. 自适应层归一化(ada_ln:用于动态调整特征分布。
  2. 两组线性变换(hidden_gating_linear 和 hidden_linear:用于构造特征空间中的非线性变化。
  3. 输出线性变换(output_linear 和 output_gating_linear:控制最终输出特征,并加入门控机制(Gating)。

源代码:

class ConditionedTransitionBlock(nn.Module):"""SwiGLU transition block with adaptive layer norm."""def __init__(self,input_dim: int,n: int = 2):"""Args:input_dim:Channels of the input tensorn:channel expansion factor for hidden dimensions"""super(ConditionedTransitionBlock, self).__init__()self.ada_ln = AdaLN(input_dim)self.hidden_gating_linear = LinearNoBias(input_dim, n * input_dim, init='relu')self.hidden_linear = LinearNoBias(input_dim, n * input_dim, init='default')self.output_linear = Linear(input_dim * n, input_dim, init='default')self.output_gating_linear = Linear(input_dim, input_dim, init='gating')self.output_gating_linear.bias = nn.Parameter(torch.ones(input_dim) * -2.0)  # gate values will be ~0.11def forward(self, a, s):a = self.ada_ln(a, s)b = F.silu(self.hidden_gating_linear(a)) * self.hidden_linear(a)# Output projection (from adaLN-Zero)a = F.sigmoid(self.output_gating_linear(s)) * self.output_linear(b)return a

源码解读:

__init__ 方法:初始化模块

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

相关文章

AI对齐与开源发展:多学科融合创新之路

标题:AI对齐与开源发展:多学科融合创新之路 文章信息摘要: 本文分析了AI对齐研究中多学科融合的重要性及开源AI领域的最新发展。文章指出,AI对齐问题需要计算机科学与社会选择理论等学科深度结合,特别是在RLHF领域的应…

Anthropic 正计划为其聊天机器人 Claude 推出“双向语音模式”和一个新的记忆功能

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

pytorch torch.vmap函数介绍

torch.vmap 是 PyTorch 提供的一个高效矢量化映射函数,用于对批量数据上的操作进行自动矢量化。它可以显著提高代码的性能和可读性,避免显式使用循环来操作批量数据。 torch.vmap 的核心功能 对函数进行批量化操作。自动扩展函数,使其可以作用于批量输入(即 N 个样本)。提…

数据结构学习记录-算法

1、算法的概念 算法(Algorithm)的概念在计算机科学领域中几乎无处不在,在各种计算机系统的实现中,算法的设计往往处在核心的位置。计算机的问世是20世纪算法是计算机科学的重要基础,就像算盘一样,人们需要为计算机编制各种各样的…

.hex 文件和.bin 文件的区别?

.bin 文件是一种二进制文件格式,它包含了以二进制形式存储的数据或程序代码。对于微控制器或嵌入式系统而言,.bin 文件通常包含了可以直接被处理器执行的机器码。 .hex也是一种常用的存储可执行代码的文件格式,与 .bin 文件不同的是&#xff…

华为支付-(可选)特定场景配置操作

如涉及以下场景,需提前完成相关产品的开通或配置操作。如不涉及,则不需要配置。 场景一:产品开通操作 部分支付场景接入涉及产品开通,未开通产品直接接入,商户请求华为支付开放的API接口时可能会导致“商户未找到对应的…

macOS查看当前项目的 tree 结构

文章目录 使用 tree 命令 macOS 系统默认不包含 tree 命令 使用 tree 命令 使用homebrew自动安装脚本/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"安装 tree:brew install tree查看项目的 tree 结构&#…

使用Pytorch完成图像分类任务

使用 PyTorch 完成图像分类任务是一个常见的机器学习任务,通常包括数据准备、模型设计、训练和测试等步骤。以下是一个完整的流程示例,帮助你快速入门: 1. 环境准备 确保你已经安装了 PyTorch 和其他必要的库。如果没有安装,可以通…