朋友们,今天继续讲解语音识别,前面讲到了进入模型的初步操作,这个模型的层数是非常多的,后面还要经过非常多的层,可以说是一个deep+deep 网络,所以,咱们今天继续跟着网络层forward!

1、网络展示

(self_attn): RelPositionMultiHeadedAttention((linear_q): Linear(in_features=512, out_features=512, dtype=float32)(linear_k): Linear(in_features=512, out_features=512, dtype=float32)(linear_v): Linear(in_features=512, out_features=512, dtype=float32)(linear_out): Linear(in_features=512, out_features=512, dtype=float32)(dropout): Dropout(p=0.0, axis=None, mode=upscale_in_train)(linear_pos): Linear(in_features=512, out_features=512, dtype=float32))

如上,之前我讲到数据经过层Conv2dSubsampling4后,shape变成了(1,90,512),然后,这个维度的数据还得继续往下forward,接下来的层变成了上面的名字:RelPositionMultiHeadedAttention,这一层也就是多头注意力机制,下面咱们往下forward。

2、网络提取

网络展示的是上面的结构,但是构建这个结构是非常复杂的,需要一点点构建,本次构建attention就不详细讲了,后文中咱们再讲,本次还是从架构和总体层面forward。

import pickle
with open("cls.pkl", "rb") as tf:    cls = pickle.load(tf)
import pickle
with open("configs.pkl", "rb") as tf:configs = pickle.load(tf)
model0 = cls(configs)
model_attn=model0.sublayers()[0].sublayers()[11][0].sublayers()[0]

可以看到,之前我们加载的模型,通过层层去找,就可以找到我们现在需要forward的模型,那么,这个模型我需要把数据怼进去,下面咱们先用随机数据试试。

3、forwad

前面咱们经过了网络Conv2dSubsampling4,下面是输出的结果。

然后,模型要看怎么输入,下面是输入参数,很明显,需要query、key、value、pos-embed和mask参数,那咱们用x输入,然后随机初始化一些数值输入试试。

model_attn(x,x,x,x,paddle.randn([1,1,90]))

好了,我们假设了一些数据,然后怼入网络层,实现了上面的效果,相当于又走了一层,但是这样很难看出细节,下面咱们通过pycharm进行debug再看看。

4、debug

前面的代码可以看到,通过一个for循环挨个forward每一层的layer,咱们目前进入的是ConformerEncoderLayer,然后这里面包括很多,我们只要RelPositionMultiHeadedAttention这一个,下面继续走。

这一层的输入参数可以看到,可以认为是三个x+pos-emb+mask,至于pos-emb之前文章讲过了,mask先不讲,咱们看后面的。

到了forward里面,又来了一个qkv,下面继续走。

这里就简单了,实际上是计算q、k和v三个值,函数是一样的,咱们只进入第一个看看。

linear层,实际上就是一个矩阵计算,这部分就是一个算子,算子基本上都是cpp实现的,就不详细讲了,想了解的请看:

https://code.ihub.org.cn/projects/680/repository/revisions/develop/entry/paddle/fluid/operators/matmul_v2_op.cc

完成这一步,后面都是常规操作,计算scores,这个自己看。

socres完成后,其实就是计算相关性了,如上代码,到了这里其实这一层的forward就完成了,后面其实还有concate等,就不讲了。

手把手教你语音识别(四)相关推荐

  1. 手把手教你语音识别(二)

    朋友们,之前的文章:手把手教你语音识别给大家讲过语音识别的流程,只不过,这些只是一个笼统的流程,下面开始从数据处理方面讲解怼入model之前都做了什么. 1.LogMelSpectrogramKald ...

  2. 手把手教你:基于TensorFlow的语音识别系统

    系列文章 第十章.手把手教你:基于Django的用户画像可视化系统 第九章.手把手教你:个人信贷违约预测模型 第八章.手把手教你:基于LSTM的股票预测系统 目录 系列文章 一.项目简介 二.语音数据 ...

  3. 手把手教你入侵网站修改数据_手把手教你使用Python抓取QQ音乐数据(第四弹)...

    [一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...

  4. 手把手教你用JAVA实现“语音识别”功能(声音转文字)标贝科技

    手把手教你用JAVA实现"语音识别"功能(声音转文字)标贝科技 前言 什么是语音识别? 将自然语音转换为文本信息,本篇文章将介绍"一句话识别"(对60秒以内的语 ...

  5. 如何将树莓派网关连接到TTN——手把手教你如何将树莓派网关连接到服务器之第四篇

    接下来,我们用实际应用实践的例子,来告诉大家如何将树莓派网关连接到TTN服务器. 1.将树莓派网关接入互联网,并选择TTN作为Server. 我们可以按照本系列文章的手把手教你如何将树莓派网关连接到服 ...

  6. 怎么用python做战斗机_少儿编程分享:手把手教你用Python编写战斗机游戏(四)

    游戏分享:手把手教你用Python编写 战斗机游戏(四) 2018.1.25 飞机大战就到这里啦 你的飞机大战做出来了吗 加入图像 现在我们已经能够玩游戏了,但这个游戏丑确实有点丑.接下来,我们要把单 ...

  7. 手把手教你搭建java接口自动化测试框架(四):断言、生成测试报告

    手把手教你搭建java接口自动化测试框架(四):断言.生成测试报告 上一集说到post和Get请求,请求后得到的响应(即接口返回值)是我们想要的吗 比如网站上get接口文档说明 : "dat ...

  8. 手把手教你使用Python抓取QQ音乐数据(第四弹)(文末赠书)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 千里之行,始于足下. [一.项目目 ...

  9. python抓取内存中的网页_『爬虫四步走』手把手教你使用Python抓取并存储网页数据!...

    爬虫是Python的一个重要的应用,使用Python爬虫我们可以轻松的从互联网中抓取我们想要的数据,本文将基于爬取B站视频热搜榜单数据并存储为例,详细介绍Python爬虫的基本流程.如果你还在入门爬虫 ...

最新文章

  1. ajax formdata提交上传,Ajax提交用FormData()上传文件
  2. angular项目打包_vue项目部署的最佳实践
  3. c_str()的用法
  4. Python sqlalchemy orm 多对多外键关联
  5. QT每日一练day1:第一个程序
  6. EMNLP杰出论文 | 当注意力遇到RNN,五倍以上训练加速!
  7. 大话设计の设计原理摘要(二)
  8. 各大市场应用上架整理
  9. [Python图像处理] 十七.图像锐化与边缘检测之Roberts算子、Prewitt算子、Sobel算子和Laplacian算子
  10. js url传参进行编码
  11. linux进入bios设置超线程,从BIOS开启超线程的方法
  12. MATLAB机器人工作空间三轴机器人scara
  13. 数理统计之 置信区间2
  14. vue中使用防抖和截流
  15. CLRS 17.4动态表
  16. C语言如何求出一堆整数的最大值
  17. Unity中物体抛物线的实现
  18. 220V接LED指示灯电阻需要多大
  19. CandidateScorer
  20. 【bzoj3573】[Hnoi2014]米特运输

热门文章

  1. AI快车道PaddleNLP系列直播课2|开箱即用的产业级NLP开发库
  2. Javascript机器学习教程
  3. AI 科学家带你快速 Get 人工智能最热技术
  4. 速卖通出单了怎么发货?海赢科技分享速卖通菜鸟商家线上发货操作手册
  5. 神舟hasee-N960Kx电脑 Hackintosh 黑苹果efi引导文件
  6. 马斯克宣布成立xAI——引领开放人工智能时代的新纪元
  7. mysql prestatement_MySQL之Prepared Statements
  8. 【Java】判断电话号码所属的运营商
  9. JLink V8刷固件方式 转载整合
  10. 转身以及低眉侧目 开始