【人工智能笔记】第三十八节:TF2实现VITGAN对抗生成网络,CoordinatesPositionalEmbedding博里叶位置编码 实现

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

网络结构图
该章节介绍VITGAN对抗生成网络中,CoordinatesPositionalEmbedding博里叶位置编码 部分的代码实现。

目录(文章发布后会补上链接):

  1. 网络结构简介
  2. Mapping NetWork 实现
  3. PositionalEmbedding 实现
  4. MLP 实现
  5. MSA多头注意力 实现
  6. SLN自调制 实现
  7. CoordinatesPositionalEmbedding 实现
  8. ModulatedLinear 实现
  9. Siren 实现
  10. Generator生成器 实现
  11. PatchEmbedding 实现
  12. ISN 实现
  13. Discriminator鉴别器 实现
  14. VITGAN 实现

CoordinatesPositionalEmbedding博里叶位置编码 简介

Generator生成器
论文原文
论文原文
CoordinatesPositionalEmbedding博里叶位置编码 是用于生成二维位置信息,就是里面的 E f o u E_{fou} Efou​ ,对应图中 Fourier Embedding部分。

注意:该部分代码可能有误,欢迎留言指正!!!

代码实现

import tensorflow as tf

class CoordinatesPositionalEmbedding(tf.keras.layers.Layer):
    """
    博里叶位置编码
    """

    def __init__(
        self,
        patch_size,
        emb_dim,
    ):
        super().__init__()
        self.patch_size = patch_size
        self.emb_dim = emb_dim
        self.pos_emb = tf.keras.layers.Dense(emb_dim, use_bias=True)
        pos_input = tf.linspace(-1, 1, patch_size)
        pos_x, pos_y = tf.meshgrid(pos_input, pos_input)
        pos_input = tf.concat([pos_y[..., tf.newaxis],pos_x[..., tf.newaxis]], axis=-1)
        pos_input = tf.reshape(pos_input,[-1, 2])
        self.pos_input = pos_input

    def call(self, x):
        x_shape = tf.shape(x)
        batch_size = x_shape[0] * x_shape[1] # batch_size*num_patches
        x = self.pos_emb(self.pos_input) # (P*P, emb_dim)
        x = tf.math.sin(x)
        x = tf.repeat(x[tf.newaxis, ...], batch_size, axis=0) # (B*L, P*P, emb_dim)
        return x


if __name__ == "__main__":
    layer = CoordinatesPositionalEmbedding(
        patch_size=16,
        emb_dim=768 # 16*16*3
    )
    x = tf.random.uniform([2,196,768], dtype=tf.float32) # (batch_size*num_patches, patch_size*patch_size, emb_dim)
    o1 = layer(x)
    tf.print('o1:', tf.shape(o1))

参考资料:

时间嵌入、时间相关性融合、跳跃连接、条件特征注意力融合、时间相关性显式建模 在许多生成建模任务中,尤其是在扩散模型中,时间扮演着重要的角色,影响着数据的状态。是深度学习模型中常见的一种结构,特别是在处理图像分割、生成建模等任务时。它指的是将前面层的特征直接传递到后面的层,从而避免在深层网络中信息的丢失或梯度消失问题。在ScoreNet中,跳跃连接用于将编码器中的局部特征与解码器中的全局特征融合,帮助模型在恢复特征时,结合更多的低级信息,提高生成的质量。在U-Net中,跳跃连接将编码器中的低级特征与解码器中的高层特征结合,这样不仅能恢复图像细节,还能提升网络在图像重建时的准确性。 阅读详情

相关推荐

从傅里叶视角看NeRF位置编码:高频信号如何破解3D重建的平滑困境

本文深入探讨了NeRF中位置编码技术如何通过傅里叶变换实现亚毫米级3D重建精度。通过分析频域采样策略和奈奎斯特定理的应用,揭示了高频信号在破解3D重建平滑困境中的关键作用,并提供了工程实现的最佳实践和进阶优化方案。

e1f2g的博客 990

FCENet学习笔记

FCENet学习笔记

爱学习爱运动的专栏 1230

跨模型的 API 调用与集成:使用 Spring AI 构建可移植的 API 代码,支持多个 AI 模型(如 OpenAI、Anthropic 等)的调用

Spring AI 是 Spring 生态系统中的一部分,旨在提供一种简单、可扩展的方式来集成人工智能模型。Spring AI 使得开发者可以使用现有的 Spring 体系结构方便地访问多种 AI 模型和服务,例如 OpenAI、Anthropic、HuggingFace 等。

秋元的博客 2404

EMBEDDING FOURIER FOR ULTRA-HIGH-DEFINITIONLOW-LIGHT IMAGE ENHANCEMENT

不同的是,在傅里叶分支中,利用从LRNet获得的细化幅度Ar特征,我们使用空间特征变换(SFT) (Wang et al., 2018)通过简单的仿射变换来调制输入xpu的幅度特征。注意,由于相位的周期性,我们不能调制相位。特别地,我们的方法,命名为uhd4,是由我们在低光噪声图像的傅里叶域中观察到的两个有趣现象所激发的:i)亮度和噪声可以在傅里叶域中进行一定程度的分解。此外,不同分辨率图像的振幅模式是相似的,这促使我们首先在低分辨率区域进行处理,只在高分辨率区域进行必要的调整,从而节省计算。

mytzs123的博客 1093

tcmalloc(高并发内存池)简化版讲解-项目

高清发不上去,私我发高清,项目完整代码@我。

2201_75352618的博客 910

倍福Beckhoff运动控制功能块实战解析:从MC_ReadActualPosition到MC_GearInVelo

本文深入解析倍福(Beckhoff)TwinCAT运动控制功能块,从基础的MC_ReadActualPosition、MC_Power等轴状态读取与使能操作,到MC_MoveAbsolute、MC_MoveRelative等单轴定位指令,并重点剖析了用于动态速度同步的核心功能块MC_GearInVelo在飞锯等场景的应用。文章结合实战经验,详细介绍了齿轮耦合、电子凸轮(MC_CamIn)等高级同步功能的参数配置、调试技巧及常见问题,旨在帮助工程师快速掌握倍福运动控制工具箱,实现复杂的同步工艺。

transformer2023的博客 981

FourierEmbedding

就是在进入attention之前,就将position的内容通过fourier embedding放入到kv的query中。

ZHANG8023ZHEN的博客 205

图文带你理解什么是Few-shot Learning

Few-shot Learning(少样本学习)是Meta Learning(元学习)中的一个实例1,所以在了解什么是Few-shot Learning之前有必要对Meta Learning有一个简单的认识。不过在了解什么是Meta Learning之前还是要了解一下什么是Meta。因此,阅读本文后你将对如下知识有一个初步的了解。 What is Meta What is Meta Learning What is Few-shot Learning 1. What is Meta? meta就是描述

Pr4da的博客 1万+

Rethinking positional encoding 阅读笔记

首先,我们来回顾一下经典的transformer下的PE。 PE:我们知道,transformer模型的attention机制并没有包含位置信息,即一句话中词语在不同的位置时在transformer中是没有区别的,这当然是不符合实际的。为了解决这个问题,transformer添加了额外的向量PE来解决这个问题。这个向量能够决定当前词的位置,或者说在一个句子中不同的词之间的距离。 理想的情况下位置编码的设计应该满足: 它应该为每个字输出唯一的编码 不同长度的句子之间,任何两个字之间的差值应该保持一致 它

baidu_40582876的博客 2946

基于深度学习的电力系统暂态稳定评估与预防控制复现

本文复现了基于深度学习的电力系统暂态稳定评估与预防控制方法。主要内容包括:(1)数据预处理环节,对IEEE 39节点系统的电压幅值、相角等特征数据进行归一化处理;(2)ACNGAT模型实现,该模型结合时间卷积网络(TCN)和图注意力网络(GAT)提取时空特征;(3)采用改进的帝企鹅优化算法进行预防控制。关键技术点包括:融合时空信息的特征提取、改进的邻接矩阵构建方法(λ_ij = E_i * E_j * B_ij)以及时空注意力机制。代码实现采用Python和PyTorch框架。

huanghm88的专栏 336

Python数据分析全流程指南:从数据采集到可视化呈现的实战解析

在数字化转型浪潮中,数据分析已成为企业决策的核心驱动力。Python凭借其丰富的生态库和简洁的语法,成为数据分析师的首选工具。本文将以实战案例为脉络,拆解数据分析全流程的关键环节,通过具体代码和场景说明如何用Python完成从数据采集到可视化呈现的完整链路。

这家伙很懒,什么都没有留下 1681

Fourier Contour Embedding for Arbitrary-Shaped Text Detection

1.摘要 任意形状文本检测的主要挑战之一是设计一个好的文本实例表示,允许网络学习不同的文本几何变化。现有的方法大多采用直角坐标系或极坐标下的掩模或轮廓点序列对图像空间域的文本实例进行建模。然而,掩模表示可能导致昂贵的后处理,而点序列一个可能有有限的能力建模文本与高度弯曲的形状。为了解决这些问题,我们在傅里叶域内对文本实例进行建模,并提出一种新的傅里叶轮廓嵌入(FCE)方法来将任意形状的文本轮廓表示为compact signatures.我们进一步构造了以特征金字塔网络为骨架的FCENet 和 以傅里叶..

m0_46434334的博客 2432

【Mode】FDE 求解器工作流程

Lumerical---FDE(Finite Difference Eigenmode) Solver

u011699626的博客 4941

论文阅读:(CVPR 2022) Motion-Adjustable Neural Implicit Video Representation

CVPR 2022 Motion-Adjustabe Neural Implicit Video Representation

mqy19960330的博客 1629

假期搞定!2026国社科申报AI全攻略指南:从选题到创新,7大核心要点手把手教你!

最后给大家推荐的400多所高校教师都在用的AI平台——高级学术版专业应用平台,集成了国际主流学术应用,以及ChatGPT、Claude、Gemini、Grok等Al大模型的高级版本平台,还有,可以辅助大家高效完成科研和学术写作任务,当然撰写硕博论文,课题、职称论文、国社科、国自然基金本子也是手拿把掐。你的任务是:用高度凝练的方式说明在(某一明确国家战略 / 政策方向,如:中国式现代化、共同富裕、基层治理现代化、数字中国、文化强国、国家安全等)背景下,我究竟要研究一个什么“具体而可操作的问题”。

智能AI让学术科研更容易 624

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Transformer位置编码的深度解析:从傅里叶级数到相对位置编码

2017年Google团队在《Attention Is All You Need》中提出的Transformer架构,彻底改变了自然语言处理领域的游戏规则。这种基于自注意力机制的模型摒弃了传统RNN的序列处理方式,实现了对整个输入序列的并行处理,为GPT、BERT等大语言模型奠定了技术基础。

zuiyuelong的博客 1598

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

1.OCR--文本检测算法FCENet

这篇文章是华南理工大学的Yiqin Zhu在2021年04月份发表的有关OCR中做文本检测的工作。一般OCR工作分两步,一步是对文本区域进行检测,先得到文本区域,然后再将检测的文本区域转化成文本。文本检测的复杂性在于文本区域的步规则性和多样性,常用的在图像空间域做文本检测方法有掩码,像素的笛卡尔或极坐标坐标轮廓点。使用掩码来做需要对图像进行像素级分类后处理时间较长,使用轮廓像素点在处理弯曲文本区域时略显无力。文本检测的方法可粗略的分成基于分割的方法和基于回归的方法。

机器人视觉感知 2074

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【读点论文】Fourier Contour Embedding for Arbitrary-Shaped Text Detection通过预测傅里叶自由度,系数来拟合任意形状轮廓线

FCENet的一大亮点就是在任意不规则形状的文本场景上表现优异,这得益于它采用了可变形卷积 和傅里叶变换技术。 除此之外,FCENet还具有后处理简单和高。核心在于利用傅里叶变换将复杂的曲线简化为少量的频率成分(即傅里叶系数),然后在需要时再通过逆傅里叶变换恢复出原始曲线。这种方法可以有效地压缩信息并且便于模型训练。同时,为了确保最终输出的是有意义的几何形状,还需要进行一系列的几何变换和筛选操作,比如 NMS 和最小外接矩形计算。这些技术共同作用,使得可以从神经网络的输出中准确地提取出文本区域的多边形表示。

白水空空 1350

傅里叶特征学习高频:Fourier 相关工作+实验分析+代码实现

       最后一个在映射时需要在高斯分布中随机采样参数,分布的std对实验结果的影响如下:

ResumeProject的博客 4678

深度学习中的傅里叶位置编码

在深度学习中,傅里叶位置编码(Fourier Positional Encoding)是一项将连续坐标(或离散索引)映射到高维特征空间的技术。无论是 Transformer 处理序列,还是 NeRF 处理 3D 坐标,其核心逻辑基本一致。傅里叶位置编码不仅仅是给输入加点“佐料”,它是改变了模型观察数据的分辨率。它将简单的数值转化为一组丰富的频率信号,让神经网络这个“近视眼”戴上了一副高倍率的显微镜。

qq_36892712的博客 678

傅里叶位置编码FoPE

本文介绍了一种傅里叶位置编码方法FoPE,基于对RoPE的频谱分析发现问题:线性层和激活函数分别造成频谱泄露和失真,时域截断导致频率扩散,这些频谱损伤影响了RoPE的周期性扩展能力。针对这些问题,论文作者提出用傅里叶级数进行多频率建模,并对训练不足的低频分量置零处理时域截断问题,最终形成了FoPE方法。(仅供学习参考,禁止商用盗用)

supervlc的博客 634

清华:傅里叶位置嵌入优化LLM长度泛化

如何解决语言模型在长度泛化上的问题,特别是由于固定上下文窗口训练导致的过拟合?论文提出了傅里叶位置嵌入(FoPE),通过增强注意力的周期性扩展来改善长度泛化,并在多个模型规模和数据集上验证了其优越性。

大模型任我行的博客 1582

ICLR2023文章分享——嵌入式傅里叶增强低照度图像

整个网络结构如下,大致分为两部分,LRNet即低分辨率处理网络,HRNet,高分辨率处理网络,LRNet部分包含四个FouSpa块,它占据了整个网络绝大部分的计算量,因此用双线性插值将特征下采样到原始分辨率的1/8。经过FouSpa后的特征送入FFT,分别得到振幅Ar和相位Pr的特征,同时Conv卷积整流特征,得到低分结果 H/8×W/8×C。该块用于在傅里叶域和空间域中并行执行增强,在傅里叶域中执行相位/振幅增强,空间域中执行特征增强。空间域分支主要进行卷积操作,以模拟空间域的结构依赖性。

Lynxse的博客 1215

TR5 - Transformer的位置编码

在NLP任务中,单词的序列顺序是非常重要的,将单词的顺序重新排列,整个句子的意思可能会发生改变。在RNN循环神经网络中,有着处理序列顺序的内置机制。Transformer通过引入位置编码机制来保存文本中字符的位置信息。位置编码记录了文本中字符的位置信息,它并没有使用单个数字(例如索引值)的形式来记录位置信息。对于长序列,索引的大小可能会变得很大,不利于存储。将索引值规范化到0-1之间,可能会为可变长度序列带来问题(它们的标准化方式不同)。

Loser 1163

Transformer架构原理的菜鸟学习之路02——位置编码(Positional encoding)

位置编码的应用随处可见,例如我们常用的11位手机号码,看似没有什么规律可循,其实是由3位网号(移动、电信等)+4位HLR号(归属位置寄存器)+4位的个人代码共同组成,尽管现在已经可以携号转网,但依然可以通过权威网站追溯到号码属地信息。在日常生活场景中,基本上都是以姓名来区分不同的人,但只有身份证号等关键信息才是可以真正区分不同地区居民的编码。前六位一般遵循如下的编码标准:第1~2位表示省级 行政区代码;第3~4位表示地 市级行政区代码;第5~6位表示县级 行政区代码。

顺其自然~专栏 342
上一篇: 【人工智能笔记】第三十七节:TF2实现VITGAN对抗生成网络,SLN自调制 实现
下一篇: 【人工智能笔记】第三十九节:TF2实现VITGAN对抗生成网络,ModulatedLinear调制模块 实现
PPHT-H
博客等级 码龄18年 6254粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PPHT-H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值