位置: IT常识 - 正文

深入理解TDNN(Time Delay Neural Network)——兼谈x-vector网络结构(深入理解linux内核)

编辑:rootadmin
深入理解TDNN(Time Delay Neural Network)——兼谈x-vector网络结构 概述TDNN(Time Delay Neural Network,时延神经网络)是用于处理序列数据的,比如:一段语音、一段文本将TDNN和统计池化(Statistics Pooling)结合起来,正如x-vector的网络结构,可以处理任意长度的序列TDNN出自Phoneme recognition using time-delay neural networksx-vector出自X-Vectors: Robust DNN Embeddings for Speaker Recognition此外,TDNN还演化成了ECAPA-TDNN,而ECAPA-TDNN则是当前说话人识别领域,在VoxCeleb1数据集的三个测试集VoxCeleb1 (cleaned)、VoxCeleb1-H (cleaned)、VoxCeleb1-E (cleaned)上的最强模型,因此学习TDNN还是很有必要的x-vector的网络结构x-vector是用于文本无关的说话人识别的,因此需要处理任意长度的序列,其网络结构如下图所示: 上图的迷惑性其实非常大,有必要好好讲解一下,现在我给出从frame1到frame4层(frame5与frame4本质上是一样的,只不过卷积核数量不同)的可视化结果 输入:每个特征图表示一帧,特征图的通道数为24,表示一帧的特征数(原文是24维fbank特征),特征图的分辨率是1,在这里需要明确:语音是1维数据,因此特征图并不是二维图,而是一个值,24个特征图堆叠起来构成24维fbank特征frame1frame1的特征图经过1维卷积得到,卷积核大小inchannels×kernelsize×outchannels=24×5×512inchannels \times kernelsize \times outchannels=24\times5\times512inchannels×kernelsize×outchannels=24×5×512frame1的每个特征图下面连接的5条线,表示卷积核。这5条线不是5根细线,而是5根麻花线,每根麻花线由inchannels=24inchannels=24inchannels=24根细线组成,每根细线连接一个特征。每根细线的权重都是一样的,每根麻花线的权重不一样 kernelsize=5kernelsize=5kernelsize=5,对应闭区间[t−2,t+2][t-2,t+2][t−2,t+2]一共5帧的上下文,也可以表示为{t−2,t−1,t,t+1,t+2}\left \{ t-2,t-1,t,t+1,t+2 \right \}{t−2,t−1,t,t+1,t+2},之所以表格说frame1的输入是120,是因为将5帧上下文的特征都计算进去了5×24=1205\times24=1205×24=120outchannels=512outchannels=512outchannels=512,表示卷积核的厚度是512,可以理解为5根麻花线堆叠了512次,每次堆叠都得到新的5根麻花线,都符合“每根细线的权重都是一样的,每根麻花线的权重不一样”。5根麻花线同时运算,得到一个值,从而frame1的每个特征图其实也是一个值,且通道数为512,对应表格中的frame1的输出是512frame2frame2的特征图经过1维膨胀卷积得到,卷积核大小inchannels×kernelsize×outchannels=512×3×512inchannels \times kernelsize \times outchannels=512\times3\times512inchannels×kernelsize×outchannels=512×3×512不要被膨胀卷积吓到了,膨胀卷积的kernelsize=3kernelsize=3kernelsize=3,表示3根麻花线中,第2根麻花线连接第t帧,第1根麻花线连接第t-2帧,第3根麻花线连接第t+2帧,对应表格中的{t−2,t,t+2}\left \{ t-2,t,t+2 \right \}{t−2,t,t+2}共3帧的上下文,这就是膨胀卷积和标准卷积的不同之处,隔帧连接在PyTorch中,1维卷积的api为 torch.nn.Conv1d(inchannels,outchannels,kernelsize,stride=1,padding=,dilation=1,groups=1,bias=True,paddingmode=′zeros′,device=None,dtype=None)torch.nn.Conv1d(inchannels, outchannels, kernelsize, stride=1, padding=0, dilation=1, groups=1, bias=True, paddingmode='zeros', device=None, dtype=None)torch.nn.Conv1d(inchannels,outchannels,kernelsize,stride=1,padding=0,dilation=1,groups=1,bias=True,paddingmode=′zeros′,device=None,dtype=None) 其中,dilation=1dilation=1dilation=1表示标准卷积,frame2的膨胀卷积需要设置dilation=2dilation=2dilation=2在这里我们也发现一点:TDNN其实是卷积的前身,后世提出的膨胀卷积,在TDNN里已经有了雏形,只不过TDNN是用于1维数据的frame3、frame4没有引进新的运算。frame3需要设置dilation=3dilation=3dilation=3,而frame4的卷积核大小inchannels×kernelsize×outchannels=512×1×512inchannels \times kernelsize \times outchannels=512\times1\times512inchannels×kernelsize×outchannels=512×1×512,因为kernelsize=1kernelsize=1kernelsize=1,所以与MLP(dense layer)没有本质区别,卷积核通过在每一帧上移动,实现全连接,因此可以看到有些代码实现用kernelsize=1kernelsize=1kernelsize=1的卷积替代全连接从frame1到frame5,每次卷积的步长stridestridestride都等于1,从而对每一帧都有对应的输出,也就是说,对于任意长度的帧序列,frame5的输出也是一个同等长度的序列,长度记为TTT,而由于frame5的outchannels=1500outchannels=1500outchannels=1500,所以表格中统计池化的输入是1500×T1500 \times T1500×T统计池化的原理颇为简单,本质是在序列长度TTT这一维度求均值和标准差,然后将均值和标准差串联(concatenate)起来,所以池化后,序列长度TTT这一维度消失了,得到了150015001500个均值和150015001500个标准差,串联起来就是长度为300030003000的向量segment6、segment7和Softmax都是标准的MLP,不再赘述最后segment6输出的512512512长度的向量,被称为x-vector,用于训练一个PLDA模型,进行说话人识别,可以计算一下,提取x-vector所需的参数 frame1+frame2+frame3+frame4+frame5+segment6=120×512+1536×512+1536×512+512×512+512×1500+3000×512=420,0448\begin{aligned} &frame1+frame2+frame3+frame4+frame5+segment6 \\ =&120 \times 512 + 1536 \times 512 + 1536 \times 512 + 512 \times 512 + 512 \times 1500 + 3000 \times 512 \\ =&420,0448 \end{aligned}==​frame1+frame2+frame3+frame4+frame5+segment6120×512+1536×512+1536×512+512×512+512×1500+3000×512420,0448​参数量并不能代表计算量,因为输入网络的是任意长度的帧序列
本文链接地址:https://www.jiuchutong.com/zhishi/299905.html 转载请保留说明!

上一篇:chatgpt实际是怎样工作的?(chattr i)

下一篇:Pytorch训练过程中出现RuntimeError: falseINTERNAL ASSERT FAILED... Couldn‘t open shared file mapping...(pytorch训练函数)

  • wps怎么画一条直线(wps怎么画一根竖线)

    wps怎么画一条直线(wps怎么画一根竖线)

  • 华为p30长截屏滚动不了是怎么回事(华为手机p30滚动截屏)

    华为p30长截屏滚动不了是怎么回事(华为手机p30滚动截屏)

  • 华为nova5微信视频美颜如何开启(华为nova5微信视频聊天怎么设置美颜功能)

    华为nova5微信视频美颜如何开启(华为nova5微信视频聊天怎么设置美颜功能)

  • 微软账户一直登录失败(微软账户一直登不进去)

    微软账户一直登录失败(微软账户一直登不进去)

  • iqooneo充电速度(iqooneo3充电速度)

    iqooneo充电速度(iqooneo3充电速度)

  • 红米手机网易云音乐安装失败(红米手机网易云闪退)

    红米手机网易云音乐安装失败(红米手机网易云闪退)

  • 电信大圣卡怎么激活(电信大圣卡怎么升级一元一G)

    电信大圣卡怎么激活(电信大圣卡怎么升级一元一G)

  • 华为nova7支持双卡吗(华为nova7支持双微信吗)

    华为nova7支持双卡吗(华为nova7支持双微信吗)

  • sb1100二极管可以用什么代替(sb1100二极管可以用什么型号代替)

    sb1100二极管可以用什么代替(sb1100二极管可以用什么型号代替)

  • 微信步数和手机步数不一致怎么回事(微信步数和手机步数不一致怎么办)

    微信步数和手机步数不一致怎么回事(微信步数和手机步数不一致怎么办)

  • 全屏快捷键ctrl加什么(全屏快捷键ctrl加什么F5)

    全屏快捷键ctrl加什么(全屏快捷键ctrl加什么F5)

  • 微信删的好友能看我的朋友圈吗(微信删的好友能找回来么没有手机号)

    微信删的好友能看我的朋友圈吗(微信删的好友能找回来么没有手机号)

  • 腾讯会议进不去怎么办(腾讯会议进不去的图片)

    腾讯会议进不去怎么办(腾讯会议进不去的图片)

  • 学校的校园网络属于(学校的校园网络属于( ))

    学校的校园网络属于(学校的校园网络属于( ))

  • xs max怎么重启(xsmax怎么重启关机)

    xs max怎么重启(xsmax怎么重启关机)

  • 手机的设备管理器在哪(手机的设备管理器有什么用)

    手机的设备管理器在哪(手机的设备管理器有什么用)

  • 计算机存储单元中存储的(计算机存储单元中存储的内容是)

    计算机存储单元中存储的(计算机存储单元中存储的内容是)

  • 如何用代码加微信好友(代码加好友)

    如何用代码加微信好友(代码加好友)

  • 怎么购买美团会员红包(怎么购买美团会员)

    怎么购买美团会员红包(怎么购买美团会员)

  • 拼多多买完东西怎么删除(拼多多买完东西店铺清空了)

    拼多多买完东西怎么删除(拼多多买完东西店铺清空了)

  • 天猫旗舰店如何退货(如何在天猫旗舰店买东西)

    天猫旗舰店如何退货(如何在天猫旗舰店买东西)

  • 在win7中,打开淘宝提示安全证书过期怎么办?(在win7中,打开资源管理器的快捷键)

    在win7中,打开淘宝提示安全证书过期怎么办?(在win7中,打开资源管理器的快捷键)

  • 【HTML】有趣的代码合集(附源码)(有趣的css代码)

    【HTML】有趣的代码合集(附源码)(有趣的css代码)

  • 马拉斯盐田,秘鲁 (© Fotofeeling/Westend61 on Offset/Shutterstock)(马纳斯古盐田气候特征)

    马拉斯盐田,秘鲁 (© Fotofeeling/Westend61 on Offset/Shutterstock)(马纳斯古盐田气候特征)

  • 前端经典面试题 | 吊打面试官系列 之 说说你对TypeScript 和 JavaScript的理解(前端经典面试题及答案)

    前端经典面试题 | 吊打面试官系列 之 说说你对TypeScript 和 JavaScript的理解(前端经典面试题及答案)

  • 零售价是含税价还是不含税价
  • 一般纳税人附加税优惠政策2023
  • 第二季度是多少钱
  • 装载机折旧年限是几年
  • 如何进行银行存款的实质性程序
  • 罚款收据与通用的区别
  • 销售折让会影响单价吗
  • 库存商品采用定价法
  • 消费税征收项目
  • 商品房买卖合同没有约定逾期交房违约金
  • 用现金支付购买增值税应税服务
  • 网银费用及回单箱费用账务处理?
  • 违规费用处理
  • 赞助费属于赠与关系吗
  • 小规模增值税普通发票税率
  • 建筑行业劳务费开发票可以开工程款吗?
  • 财税2010 121号文件是否作废
  • 民办非企业所得税免税政策
  • 销售自建的不动产如何缴纳增值税
  • 存货入库后的仓储费记录
  • 法院执行款可以开发票吗
  • 营业收入包括的项目有
  • 退货抵扣是什么意思
  • 副调基金的会计分录怎么做?
  • 固定资产弃置费怎么算
  • win7系统步骤
  • 非营利组织一般纳税人会计准则
  • Win10新版21364发布: 可直接运行Linux图形程序
  • php运用于哪些领域
  • 建筑行业挂靠开票怎么做账务处理?
  • 经营性租赁与融资性租赁
  • 限额领料单属于外来原始凭证吗
  • 代驾服务费如何计算
  • Win11 Build22000.346 Beta/Release预览版发布 KB5007262更新汇总
  • php调用sql server存储过程
  • nginx静态文件服务器
  • wordpress调用指定文章
  • php中的类
  • php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
  • 最新人工智能软件chingt
  • bounded linear functional
  • vue框架搭建步骤
  • 中国版ChatGPT即将来袭-国内版ChatGPT入口
  • 织梦cms怎么样
  • 拓展费怎么做账
  • 银行的抵债资产会过到银行名下吗
  • 工程结算期末有余额吗?
  • 去年的进项发票可以抵今年的吗
  • 一般纳税人销售旧货适用征收率是?
  • 收到员工交来现金怎么入账
  • 现代服务行业有哪些
  • 不反写会影响开票吗
  • 现金折扣是啥
  • 教育费附加和地方教育费附加都要交吗
  • 收到所得税退税怎么做账务处理
  • 长期借款账务处理会计分录
  • 预交税会计分录
  • 国家高新技术补助
  • 建筑业老项目和新项目如何计税
  • 邮局的定额发票能报销吗
  • 注册资金没显示
  • 慧通年终奖怎么计算
  • 出口退税勾选后电子税务局查不到发票
  • 哪些税费计入税金及附加科目
  • mysql5.7.23
  • linux系统汉化教程
  • linux自动清理内存软件
  • ubuntu20.04怎么用
  • win8.1怎么关机快捷键
  • windowssystem32configsystem 损坏
  • 近期win7蓝屏
  • js的继承方式
  • 简述javascript的主要特点
  • XML、HTML、CSS与JS的区别整理
  • python 线程教程
  • 抱歉,初始化安卓设置时发生了问题
  • uk怎么查看发票开票额度
  • 北京纳税申报的具体流程
  • 如何计算土地增值税税率
  • 河南省2020年12月纳税申报截止日期
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设