当前位置: 首页 > wzjs >正文

佛山网站开发招聘排名优化网站

佛山网站开发招聘,排名优化网站,做我女朋友网站p0rn视频,辽宁省网站备案系统本文参考链接如下: transformers源码阅读——vscode调试llama模型代码 1. 调试文件 因为只是搞清楚数据的流向,所以不需要下载任何预训练的参数 from transformers.models.llama import LlamaModel,LlamaConfig import torchdef run_llama():# part 1…

本文参考链接如下:
transformers源码阅读——vscode调试llama模型代码

1. 调试文件

因为只是搞清楚数据的流向,所以不需要下载任何预训练的参数

from transformers.models.llama import LlamaModel,LlamaConfig
import torchdef run_llama():# part 1  模型初始化llamaconfig = LlamaConfig(vocab_size=32000,hidden_size=4096//2,intermediate_size=11008//2,num_hidden_layers=32//2,num_attention_heads=32//2,max_position_embeddings=2048//2)llamamodel = LlamaModel(config = llamaconfig)# part 2 构建输入数据,在正向传播过程中,只需要传一个inputs_ids,batchsize是4,序列长度是30,每个元素是一个(0,llamaconfig.vocab_size)的随机整数inputs_ids = torch.randint(low=0,high=llamaconfig.vocab_size,size=(4,30))# part 3res = llamamodel(inputs_ids)##前向计算,等价于llamamodel.forward(inputs_ids)print(res)if __name__ == "__main__":run_llama()

2. vscode调试

2.1 设置调试配置文件

点击左侧边栏的运行和调试按钮:
在这里插入图片描述
然后点击创建launch.json文件
在这里插入图片描述
然后会出现 python文件调试当前正在运行的python文件
在这里插入图片描述
然后就新建了一个launch.json调试配置文件
在这里插入图片描述

其中"justMyCode"表示是一个否只调试当前的文件,如果是true,就没法进入transformers的代码了,所以如果想调试进入transformers的代码,就把这个属性设置为false

2.2 设置断点

先看看怎么前向计算的。按住ctrl键,点击LlamaModel进入LlamaModel定义的源码
在这里插入图片描述但是LlamaModel定义的源码很多,可以通过资源管理器大纲标签查看LlamaModel源码文件的代码结构:
在这里插入图片描述
为了快速抓住重点,在LlamaAttentionforward方法打断点:
在这里插入图片描述
调试窗口断点标签可以找到这个断点,直接点击可以直接定位到断点的位置。
在这里插入图片描述
打开要调试的代码文件,然后点击调试窗口调试按钮
在这里插入图片描述

然后程序运行,在断点处停止运行。可以看到出现了调试按钮组件
在这里插入图片描述

在VSCode调试过程中,各操作按钮的功能如下:

  1. 继续(Continue)
    图标:通常为▶️(播放按钮)。
    功能:从当前暂停的位置继续执行程序,直到遇到下一个断点或程序自然结束。
    使用场景:当检查完当前状态的变量或逻辑后,希望程序继续运行而非逐行调试。

  2. 逐过程(Step Over)
    图标:通常为⏭️(向右箭头跨越圆点)。
    功能:执行当前行的代码,不进入函数内部。若当前行包含函数调用,会直接执行完该函数,并停在下一行。
    示例:在foo();这一行使用“逐过程”,会直接执行foo()函数全部代码,停在foo();的下一行。

  3. 单步调试(Step Into)
    图标:通常为⏬(向下箭头进入函数)。
    功能:进入当前行代码中的函数调用内部,逐行调试函数内的逻辑。
    示例:在foo();这一行使用“单步调试”,会跳转到foo()函数的定义处,开始逐行执行函数内的代码。

  4. 单步跳出(Step Out)
    图标:通常为⏫(向上箭头跳出函数)。
    功能:执行完当前函数的剩余代码,返回到调用此函数的位置
    使用场景:在函数内部调试时,若希望快速执行完当前函数并回到调用处。

  5. 重启(Restart)
    图标:通常为🔄(循环箭头)。
    功能:终止当前调试会话,并重新启动程序,从头开始执行。
    注意:所有变量和状态会被重置。

  6. 停止(Stop)
    图标:通常为⏹️(方块图标)。
    功能终止当前调试会话,结束程序运行。
    注意:程序会立即停止,不会执行后续代码。


对比示例
假设有以下代码:

function a() {console.log("a");
}function b() {a();          // 断点设在此行console.log("b");
}b();

• 在a();行暂停时:
逐过程(Step Over):执行a()但不进入其内部,直接停在console.log("b");
单步调试(Step Into):跳转到a()函数内部,停在console.log("a");
• 若在a()函数内部使用单步跳出(Step Out):执行完a()剩余代码,返回到console.log("b");

总结
• 需要跳过函数调用时用逐过程,深入函数时用单步调试,快速退出函数用单步跳出
继续用于恢复全局执行,重启/停止用于控制调试会话的生命周期。

变量标签可以看到程序运行到断点处的调用堆栈内的变量的值
在这里插入图片描述
监视标签可以定义(通过点击+)自己想要实时监视的变量,或者变量的形状:

在这里插入图片描述
观察变量还有一个办法,ctrl+J可以调出下面的调试控制台
在这里插入图片描述
在最下面输入想要观察的变量就会给出值。同过观察代码和中间变量:
在这里插入图片描述
query_states的[4,16,30,128]是怎么得来的:首先4是batch size,30是序列长度,这在测试代码中早就定义好了:

    inputs_ids = torch.randint(low=0,high=llamaconfig.vocab_size,size=(4,30))

传进来的hidden_states形状是[4,30,2048],而self.q_proj的形状是:[2048,2048],
所以self.q_proj(hidden_states)得到的输出形状是[4,30,2048], hidden_shape是[4,30,-1,128],所以
self.q_proj(hidden_states).view(hidden_shape)得到的输出的形状是[4,30,16,128],这就是为了多头注意力机制,其中16就是头的个数,128是每个头输出维度。transpose(1, 2)将1,2维度交换,就得到了[4,16,30,128]

调用堆栈标签可以看到逐层的调用过程:
在这里插入图片描述

http://www.dtcms.com/wzjs/39738.html

相关文章:

  • 无经验可以做网站编辑吗高佣金app软件推广平台
  • 用凡科做网站要钱吗百度导航下载2020新版语音
  • 河长制网站建设torrentkitty磁力天堂
  • 做电影网站用什么软件叫什么名字吗google ads 推广
  • 网站引入视频播放游戏推广代理app
  • 黄冈论坛东部社区seo排名工具有哪些
  • 网站关键字代码有没有免费的seo网站
  • 怎么做百度采购网站南京seo排名
  • 网站优化公司 网络服务网络推广引流方式
  • 网站模板 修改站长工具果冻传媒
  • 新疆做网站的公司排名网站制作免费
  • 用自己网站做邮箱域名解析免费域名邮箱
  • 河南人民政府网官网谷歌seo外包公司哪家好
  • 扬州网站制作企业推广软文
  • 宁陵网站建设上海专业seo服务公司
  • 网站设计日志网站设计公司建设网站
  • 国家开放大学网站界面设计2022适合小学生的简短新闻摘抄
  • 西安做网站科技有限公司seo外包服务专家
  • 做网站补贴iis搭建网站
  • 做一个静态网站多少钱广告投放是做什么的
  • 龙岩做网站龙岩网页设计seo是什么服务器
  • 企业网站用wordpress2022年最新热点素材
  • 建设网站的网站叫什么搜索引擎推广的费用
  • 国内做视频的网站seo网页推广
  • 作弊网站搜索大全引擎入口
  • 哪家做网站最好合肥网站推广优化
  • 网站推广怎么做电商运营的基本内容
  • 网站群建设指导意见培训班管理系统 免费
  • 哈尔滨h5建站潍坊关键词优化排名
  • 美妆网站建设方案seo排名优化的方法