【人工智能笔记】第三十八节: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

英飞凌IGBT驱动芯片2ED020I12F2去饱和电路设计总结整理收集

记录下英飞凌IGBT驱动芯片限流电阻阻值设计

nizhenyuchina的博客 5996

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

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

mytzs123的博客 1093

SAP采购订单行项目增强实战:用BADI ME_GUI_PO_CUST添加自定义字段(避坑指南)

本文详细解析了如何通过BADI ME_GUI_PO_CUST在SAP采购订单行项目中添加自定义字段,包括技术架构理解、字段扩展步骤、自定义函数组创建及BADI实现。文章特别强调了避开官方文档未提及的陷阱,如字段映射限制和屏幕显示问题,并提供了高级优化技巧和性能建议。

weixin_30402343的博客 594

基于STM32XX的LCD液晶显示屏(HS19264G06A、驱动芯片:ST7525)驱动C程序设计

define USE_HW_SPI 1 // 1:使用硬件SPI, 0:使用软件模拟SPI。

myron6688的博客 235

FourierEmbedding

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

ZHANG8023ZHEN的博客 205

基于STM32、HAL库的TCA9555PWR I/O扩展器驱动程序设计

define TCA9555_ADDR_BASE 0x20 // 基础地址 (A0=A1=A2=0)* @param direction: 方向 (0=输出, 1=输入)* @param direction: 方向 (0=输出, 1=输入)* @param polarity: 极性 (0=正常, 1=反转)* @param polarity: 极性 (0=正常, 1=反转)

corlin6688的博客 528

Rethinking positional encoding 阅读笔记

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

baidu_40582876的博客 2946

FPGA实现PID算法

PID 控制器表达式如下(引用某硕士论文 《基于FPGA的PID控制器研究与实现》): 其中,Kp为比例增益,Ti为积分时间常数,Td为微分时间常数,u(t)为控制量,e(t)为偏差。 在数字控制系统中,PID控制规律的实现必须用数值逼近的方法。当采样周期相当短时,用求和代替积分、用后向差分代替微分,使模拟PID离散化变为差分方程。 本文使用并行结构来实现。具有延时小,计算速度快的特点,但需要资源比较多。 利用图3.2所示并行结构实现方法 ,进一步将3.8式分解: ...

nxin168的博客 1万+

《Zephyr OS 入门与实战》第1章:Zephyr OS 架构与物联网定位

【代码】《Zephyr OS 入门与实战》第1章:Zephyr OS 架构与物联网定位。

2301_79143213的博客 1270

Fourier Contour Embedding for Arbitrary-Shaped Text Detection

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

m0_46434334的博客 2432

122、Android Camera HAL3 框架:Request、Result、Metadata 的异步管道模型

本文深入剖析了Android Camera HAL3框架中的异步管道模型,围绕Request、Result和Metadata三个核心要素展开。作者通过实际案例(黑屏闪退问题)切入,揭示了异步模型中常见的帧序错乱陷阱。文章详细阐释了三个角色的交互机制,指出HAL3采用生产者-消费者模式的关键特征:Request与Result一一对应但不保证顺序。针对开发实践,总结了三个必须加锁的场景和回调函数的锁使用禁忌,并给出解决帧序问题的具体方案(独立帧号生成器)。最后提出五项经验性建议,强调异步模型带来的灵活性与复杂性

sundong_81的博客 214

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

CVPR 2022 Motion-Adjustabe Neural Implicit Video Representation

mqy19960330的博客 1629

Python爬虫实战:逆向解析腾讯视频API,高效获取结构化视频信息

首先,我们定义期望获取的数据结构,这有助于数据验证和代码清晰度。python"""腾讯视频信息数据模型"""title: str = Field(..., description="视频标题")vid: str = Field(..., description="视频唯一ID")play_count: Optional[int] = Field(None, description="播放量")

2201_76125261的博客 2379

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

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

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

zuiyuelong的博客 1598

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

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

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

机器人视觉感知 2074

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

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

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

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

白水空空 1349

傅里叶特征学习高频: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、付费专栏及课程。

余额充值