首页 > 其他分享 >prompt gating代码探索

prompt gating代码探索

时间:2023-08-09 17:48:30浏览次数:35  
标签:adding prompt dim 代码 torch num gating size

import torch

def promptGating(gating, adding, x):
    '''
    gating: (num_prefix, dim)  
    adding: (num_prefix, dim) 
    x: (seq_length, batch_size, dim) 
    '''
    if gating is not None:
        gating = gating.unsqueeze(0).expand(x.size(1), -1, -1).transpose(0, 1) # (num_prefix,batch_size,dim)
        gating = torch.cat([gating, torch.ones([x.size(0)-gating.size(0), x.size(1), x.size(2)])], axis=0) 
        # (seq_length, batch_size, dim)
        x = x * gating # prefix之外*1

        if adding is not None: #相当于加上bias
            adding = adding.unsqueeze(0).expand(x.size(1), -1, -1).transpose(0, 1) 
            adding = torch.cat([adding, torch.zeros([x.size(0)-adding.size(0), x.size(1), x.size(2)])], axis=0)

            x = adding + x  # prefix之外+0
    return x

if __name__ == "__main__":
    num_prompt, batch_size, seq_length, dim = 2, 8, 22, 1024
    gating = torch.randn(num_prompt, dim) 
    adding = torch.randn(num_prompt, dim) 
    x = torch.randn(seq_length, batch_size, dim) 

    new_x = promptGating(gating, adding, x)
    print(new_x.shape)
    # 输出:torch.Size([22, 8, 1024])

标签:adding,prompt,dim,代码,torch,num,gating,size
From: https://www.cnblogs.com/tuyuge/p/17617500.html

相关文章

  • 使用C#配合modbus协议的16进制代码生成crc16校验码的计算方法
    前言在网上也是查看了很多关于crc16校验的文章,但是好像都是对于有基础的人看的,我当时拿起直接使用,发现行不通,这对于零基础的不是很友好,所以决定贡献一篇,哈哈哈哈~~~publicuintCalcCRC16(stringhexCommand){byte[]pBuf=HexStringToByteArray(......
  • 数字时代的生产力工具:低代码开发平台
    产业新周期背景下,最终用户的需求在快速变化并充满不确定性,企业所面临的市场竞争关系正从企业间转向产业链的全面竞争,传统企业数字化转向也逐渐由内向外,转向实现全产业链的数字化能力构建与连接。前瞻的传统企业正在加速推进数字化转型,试图通过借助新一代生产力工具,支撑创新业务快速......
  • 200多个js技巧代码
    1.文本框焦点问题onBlur:当失去输入焦点后产生该事件onFocus:当输入获得焦点后,产生该文件Onchange:当文字值改变时,产生该事件Onselect:当文字加亮后,产生该文件<inputtype="text"value="mm"οnfοcus="if(value=='mm){value=''}"οnblur="if(value==''){va......
  • Java源代码是如何编译,加载到内存中的?
    1.前言相信许多开发同学看过《深入理解java虚拟机》,也阅读过java虚拟机规范,书籍和文档给人的感觉不够直观,本文从一个简单的例子来看看jvm是如何工作的吧。本文所有操作均在mac上进行。2.示例代码示例代码采用最常见的双重检索单例模式:packageinterview.desginpattern.single......
  • Wordpress:如何放置谷歌GTM代码?
    使用Wordpress建站需要应用谷歌的GTM代码进行监测用户行为,那么如何安装GTM代码呢?分为两种,一.使用插件进行安装二.直接编辑代码Header模块进行安装。先看看谷歌GTM的安装要求:注意:1.script部分需要安装在head标签之内;2.noscript部分需要安装在body开始标签之后。 方法一......
  • Jenkins集成sonar代码静态扫描
    sonar简介Sonar(SonarQube)是一个开源平台,用于管理源代码的质量。Sonar不只是一个质量数据报告工具,更是代码质量管理平台。支持的语言包括:Java、PHP、C#、C、Cobol、PL/SQL、Flex等。官网:https://www.sonarqube.orgJenkins插件安装Jenkins集成sonar需要安装插件:SonarQubeScan......
  • 【代码设计】链表结构解决多流程校验
    目的 使用合理的代码设计,解决业务场景的中的实际问题。背景介绍 在实际的业务场景中,用户的一个操作行为,是否允许真正被执行,往往会涉及到多流程的校验,一旦有条件不满足将会被中止。以下面流程图为例:用户点击了打赏按钮,会进行是否有网络检查,没有网络,会有网络连接弹框,等待用户连接......
  • .NET 托管代码与非托管代码
    目录什么是“托管代码”?什么是“非托管代码”?非托管类型?相关参考介绍.NET中的托管代码与非托管代码。......
  • 遇到问题--pycharm为什么py文件代码提示都没了,被当成text文件
    遇到问题pycharm为什么py文件代码提示都没了原因创建该文件时选错text文件类型,被当成text文件了删除后重新新建成py文件也没用因为text有一个名字队列,只要加入过的都会被识别成text解决方法Pycharm—>Preferences—>Editor—>FileTypes—>选到Text在RegisteredPatterns中找到......
  • 【代码块】-图片-获取各像素点
    整理代码块代码块整理后存储,供后期使用/*这段代码是用于将图像的像素数据锁定、修改、然后再解锁的操作,以实现对图像像素的直接读写*/privatestaticbyte[]LockUnlockBitsExample(Imageimg){//Createanewbitmap.Bitmapbmp=(Bitmap)img;//......