位置: 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训练函数)

  • 平安是福(水田里的意外)(平安是福是啥意思)

    平安是福(水田里的意外)(平安是福是啥意思)

  • macbookair怎么录屏(macbookair怎么录音)

    macbookair怎么录屏(macbookair怎么录音)

  • 电脑分号怎么打(电脑分号怎么打出来)

    电脑分号怎么打(电脑分号怎么打出来)

  • 微博里头像相册删不掉(微博里头像相册怎么删除)

    微博里头像相册删不掉(微博里头像相册怎么删除)

  • 小米手机手机键盘缩小了,怎么调回原来的(小米手机键失灵怎么办)

    小米手机手机键盘缩小了,怎么调回原来的(小米手机键失灵怎么办)

  • ppt背景图怎么设置透明度(PPT背景图怎么设置自己的图片)

    ppt背景图怎么设置透明度(PPT背景图怎么设置自己的图片)

  • 为什么发到朋友圈的视频不清晰(为什么发到朋友圈的视频会压缩了)

    为什么发到朋友圈的视频不清晰(为什么发到朋友圈的视频会压缩了)

  • 笔记本连不上WIFI怎么办(笔记本连不上wifi但是手机可以连接)

    笔记本连不上WIFI怎么办(笔记本连不上wifi但是手机可以连接)

  • 打印机突然不通电(打印机突然不工作)

    打印机突然不通电(打印机突然不工作)

  • ipad充电始终百分之一(ipad充电一直100%不上去)

    ipad充电始终百分之一(ipad充电一直100%不上去)

  • 芒果tv弹屏在哪里开(芒果tv弹幕按钮怎么突然没有了)

    芒果tv弹屏在哪里开(芒果tv弹幕按钮怎么突然没有了)

  • 华为v30有没有红外线功能(华为v30有没有红外功能)

    华为v30有没有红外线功能(华为v30有没有红外功能)

  • vivo手机音量突然变小(vivo手机音量突然变小,一会变大)

    vivo手机音量突然变小(vivo手机音量突然变小,一会变大)

  • 腾讯视频转码审核要多久(腾讯视频转码中)

    腾讯视频转码审核要多久(腾讯视频转码中)

  • 如何把qq状态弄成离线(如何把qq状态弄到桌面)

    如何把qq状态弄成离线(如何把qq状态弄到桌面)

  • 闲鱼永久禁言怎么申诉(闲鱼永久禁言解除)

    闲鱼永久禁言怎么申诉(闲鱼永久禁言解除)

  • pr可以导入什么格式的视频(pr可以导入什么格式的文件)

    pr可以导入什么格式的视频(pr可以导入什么格式的文件)

  • 光纤线可以90度弯曲吗(光纤线90度折了影响网速吗)

    光纤线可以90度弯曲吗(光纤线90度折了影响网速吗)

  • 和多号可以申请几个(和多号可以申请微信吗)

    和多号可以申请几个(和多号可以申请微信吗)

  • 苹果手机无服务怎么办(苹果手机无服务运营商不可用)

    苹果手机无服务怎么办(苹果手机无服务运营商不可用)

  • 在word中默认的对齐方式是(在word中默认的字体字号是)

    在word中默认的对齐方式是(在word中默认的字体字号是)

  • realme Q支持NFC吗(realmeq3支持nfc吗)

    realme Q支持NFC吗(realmeq3支持nfc吗)

  • wps怎么批量查找内容(wps怎么批量查找重复的表格)

    wps怎么批量查找内容(wps怎么批量查找重复的表格)

  • qq闪图销毁了怎么还原(qq闪图销毁了怎么看苹果)

    qq闪图销毁了怎么还原(qq闪图销毁了怎么看苹果)

  • 锁屏显示是什么意思(iphone锁屏显示内容怎么设置)

    锁屏显示是什么意思(iphone锁屏显示内容怎么设置)

  • word 邮件怎么合并(word邮件合并怎么弄)

    word 邮件怎么合并(word邮件合并怎么弄)

  • 10086防呼死怎么设置(移动防呼死业务介绍)

    10086防呼死怎么设置(移动防呼死业务介绍)

  • pr如何导出flv格式视频(pr2020导出flv格式)

    pr如何导出flv格式视频(pr2020导出flv格式)

  • yy伴侣无法读取设备怎么办(yy伴侣怎么用不了)

    yy伴侣无法读取设备怎么办(yy伴侣怎么用不了)

  • 记录CentOS7自定义修改SSH端口 不用默认22端口(centos7配置自动获取ip)

    记录CentOS7自定义修改SSH端口 不用默认22端口(centos7配置自动获取ip)

  • 小规模纳税人出售使用过的汽车
  • 差额征税如何开票备注内容应该怎么调
  • 部分产品退货怎么办
  • 固定资产二级科目取消原因
  • 企业的培训费会计分录
  • 增票普票税额是否可以抵扣吗
  • 收入未确认可以结转成本吗
  • 工程未完工但已开票
  • 公司账上的应收账款余额变为负数涉及什么税?
  • 对外支付增值税扣缴义务发生时间
  • 公司做账是做什么
  • 基金公司收到投资者的投资款
  • 农村合作社收到奖金分录
  • 政府补助企业的钱要交税吗
  • 办公软件无形资产的确认条件有哪些
  • 待处理财产损益的二级科目
  • 残疾人保障金人数
  • 一般纳税人企业所得税如何计算
  • 清产核资的步骤
  • 少交的增值税如何记账
  • 在win7系统中文件属性有哪些
  • 可转换债券具有债权和股权双重特征
  • 其他综合收益也要交税吗
  • 经营负债是指什么
  • 拍卖公司财务
  • 劳务费要申报个税吗怎么申报
  • 在路由器设置中怎么设置
  • 新准则规定
  • 微信用不升级
  • 交易性金融资产属于流动资产
  • php操作redis
  • wordpress用什么开发的
  • php正则表达式匹配字符串
  • php+mysql+ajax实现单表多字段多关键词查询的方法
  • 出口企业的出口比例怎么算
  • 返聘人员的工资需要交税吗?
  • 长投会计分录总结
  • 出租车票可以查到行程吗
  • 工会经费的计提基数不包括
  • 税盘清卡清不了怎么办
  • 酒店营业成本预算
  • 固定业户应当向其机构
  • 车船税和保险在一张发票怎么做账
  • 没有虚拟化iommu
  • 一般纳税人开普票税率是多少
  • 异常凭证一定要转出吗
  • 销售返利可以税前扣除吗
  • 苗圃的账务处理
  • 单位集体旅游算工资吗
  • 没有发票如何做会计分录
  • 跨年度退货账务处理
  • 房地产老项目简易计税开专票
  • 物业公司代收代付租金要开发票吗
  • 会计账户与银行账户
  • 企业股东撤资如何清算
  • 企业货币资金主要包括哪些
  • 环境会计的构建方法
  • sqlserver日期计算年龄
  • sql合并字段
  • 批量修改 sql
  • ubuntu系统如何解压文件
  • linux vmtool
  • win 驱动
  • 五笔输入法怎么切换中文
  • python批量下载文件
  • unity中国代理
  • unity3ds
  • srslte源码分析
  • 教你如何使用玻璃胶
  • shell中for循环如何用sed
  • python语言例子
  • 税控盘怎么查看开票截止日期
  • 兖州宁德新能源官网首页
  • 国税总局商品编码是什么
  • 南京江宁区地税局待遇(南京各个区税务局待遇)
  • 税控盘监控信息写盘失败时钟校准
  • 国家税务总局四川省电子税务局界面
  • 支付宝登录电子社保卡显示已被其他账号登录
  • 豫事办登录时密码叫重置什么原因
  • 税务筹划和纳税申报哪个更容易学
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设