语音中的 Transformer一文打尽!

2023-11-01

写在前面——

自 2017 年 Transformer 技术出现以来,便在 NLP、CV、语音、生物、化学等领域引起了诸多进展。

知源月旦团队期望通过“Transformer+X” 梳理清 Transformer 技术的发展脉络,以及其在各领域中的应用进展,以期推动 Transformer 技术在更多领域中的应用。

我们在前几期中,介绍了 Transformer 的基本知识,以及其在 NLP、CV 领域的研究进展。在本篇推文中,我们将介绍Transformer 在语音中的应用。

后续我们将介绍 Transformer + 生物/化学等的研究。欢迎感兴趣的同学报名来参与到后续的工作中。

Github:floatingCatty/BAAI-Monthly-

申请加入Transformer +X 研究群:

本期贡献者

赵江杰、宋彤彤

邓雯敏、周寅张皓

本文为【知源月旦】团队完成的第四期综述,后续我们会定期更新最新前沿研究进展,敬请关注。

第一期:机器学习的可解释性

第二期:Transformer+NLP

第三期:Transformer+CV

01

导言

语音识别是人工智能领域研究历史很悠久的任务之一。从上世纪80年代起,高斯混合模型-隐马尔可夫模型(GMM-HMM)一直主导了语音识别的研究,随着深度学习的再次崛起和流行,发展出了深度神经网络-隐马尔可夫模型(DNN-HMM)[1],但是这两种模型方案都需要使用HMM来进行解码识别。

LSTM与CTC的结合摆脱了对HMM的依赖实现了端到端的语音识别,随后Attention机制为NLP领域带来技术革新的同时也惠及了语音识别,BLSTM+Attention的模型组合成为新的语音识别范式。

Transformer在自然语言处理领域被提出后,陆续被引入到语音识别及计算机视觉领域,并表现非常出色。2018年Linhao Dongdeng人[2]率先将Transformer模型引入语音识别领域,提出Speech-transformer,这是一个完全依赖Attention机制学习位置依赖关系的无重复seq-seq模型。

图1. Speech-transformer结构

Speech-Transformer提出后,有研究者将Transformer和RNN在各种ASR语料库中的应用进行了比较[3]。在他们的实验中,Transformer在13/15 ASR基准中表现出比RNN更大的优越性,证明了由于Transformer的并行训练能力及强大的序列建模能力,相比循环神经网络,基于Transformer的的编解码模型在语音识别任务中表现出更大优越性。

图2. 实验中各语料库的字符/单词错误率

本篇将对Transformer模型在语音识别领域的运用特别是在流式场景下的改进方案展开探讨。

02

流式模型

语音识别模型按使用场景可以分为离线模型和流式模型,离线识别模型在用户说完一句话或一段话之后再进行识别,而流式模型则是指用户还在说话的时同步进行识别,对识别的实时率有比较高的要求。由于Transformer编码器和解码器的自注意力机制需要对全序列上下文信息进行建模,同时编码器和解码器之间的注意力机制一次需要获取整个声学编码向量,计算时间复杂度和空间复杂度会随着语音时长的增加而变大,同时Transformer的多层结构会造成累积延迟,因此不能直接用于流式语音识别的场景中,将Transformer模型改进实现低延时的流式识别就显得非常有必要性,这个方向在学术研究上更具挑战性,同时也有非常大的工业应用价值。我们对近两年Transformer相关发表的大概15篇论文进行了调研,发现其中8篇都是关于Transformer流式识别的相关模型和技术方案,说明了transformer的流式解码也是ASR领域学术关注的热点。

目前看到使用较多的Transformer流式语音识别主要包括两类:Transducer结构模型,Joint Attention/CTC模型。

2.1 Transducer

在流式语音识别,RNN-T颇受欢迎。其结构如图3所示,原始RNN-T中,Audio Encoder和Label Encoder大多采用LSTM,Joint Network一般为前馈神经网络。RNN-T是一种序列到序列模型,但与其他序列到序列模型(如LAS,Transformer)有所不同的是,RNN-T不采用注意力机制,不需要一次获取整个输入语音编码序列,而是流式的处理输入并输出预测结果,是天生的流式结构。近几年研究人员也积极探索如何将Transfromer融入RNN-T中来进行流式语音识别[4-6]。

图3. RNN-T结构 [5]

2019年Facebook提出了Transformer-Transducer[4],在实验中,在将声学特征送入Audio Encoder前,堆叠两层VGGNet,此结构也相应被称为VGG-Transformer,一方面可以降低帧率,另一方面由于卷积能够很好的对位置信息进行编码[7],因此实验中取消了额外的位置编码。

图4. VGG-Transformer [4]

同时VGGNet采用因果卷积(Causal Convolution)防止未来信息的泄露。

图5. Causal Convolution [4]

在Audio Encoder的Transformer中使用截断的自注意力(图6(b))替代原来的全序列自注意力(图6(a)),来限制上下文窗口,从而进一步降低延迟。

图6. Self-Attention: (a) Unlimited (b) Truncated [4]

最终结果显示,当Audio Encoder为Transformer,Label Encoder为LSTM时表现最好,并且当截断自注意力的R=4,L=32时达到最优。

2020年谷歌提出了Transformer Transducer[5],与[4]的思路类似,通过替换Audio Encoder和Label Encoder为Transformer,并且通过对Attention Score的Mask来限制Audio Encoder与Label Encoder自注意力的上下文信息来降低延迟,但与[4]不同的是,该论文除探究对Audio Encoder上下文信息限制外,还探究了对Label Encoder不同长度上文信息限制对模型性能的影响。

除上述两篇文章,华为也尝试了将Transformer与RNN-T融合,提出了Conv-Transformer Transducer[6]。其在Audio Encoder中通过在Transformer层之间加入卷积层来降低帧率,同时获取未来信息,该结构被称为Conv-Transformer,其不仅能显著降低训练内存需求,还不会造成精度损失。

图7. Audio Encoder of Conv-Transformer Transducer [6]

实验中卷积的设置将帧率降为80ms,未来信息窗口大小固定为140ms。由于卷积可以获取到未来信息,因此在该论文中自注意力将被限制不能获取到下文信息,只能获取到上文信息,并通过限制获取到上文信息的长度从而实现流式识别。

图8. 上下文窗口及帧率再卷积层中的变化 [6]

综上,我们可以看出,将Transformer与RNN-T融合并进行流式的改进主要有以下几个方面:

(a)将RNN-T的Aduio Encoder和Label Encoder前者或两者改为Transfomrer。

(b)限制Transformer中Self-Attention上下文信息。

(c)通过在Audio Encoder中加入卷积层来降低帧率。

(d)Aduio Encoder中自注意力和卷积层往往只有一个可以获取到下文信息。

2.2 Joint Attention/CTC

另外一种比较常用的流式语音识别的方案是Self-Attention与CTC联合使用的混合方案。端到端的语音识别模型主要分为两类:Attention-based和CTC-based,Transformer属于其中的Attention-based模型,而CTC基于条件独立性假设,每个时刻的输出仅依赖于当前时刻的输入,不需要等待完整的上文输入,通过引入空白符,保持输入与输出的单调对齐(mono-tonic alignment),使用动态规划算法实现快速解码。但也因为CTC中每帧的输出是相互独立的,而一般对于语音识别的文字结果而言,由于文本中上下文有语义依赖,而CTC输出之间相互独立,因此为了实现更好的性能,在实际中使用CTC时往往会加上语言模型。

图9. CTC语音识别过程

Attention-based通过注意力机制对音频输入的各帧进行联合建模,与CTC假设各帧之间条件独立刚好相反,如果结合两者的特点来构建一个混合模型,就能利用两种机制各自优点和差异来实现更鲁棒的识别效果。在实际应用中,一般设置CTC与Attention共享一个encoder,目标函数联合优化CTC loss和Attention loss,在训练过程中利用CTC 的对齐信息来辅助Attention的非单调对齐,加速模型训练收敛[7]。在推理阶段,同样可以结合CTC和Attention的输出概率进行联合解码。

图10. Attention-CTC 混合结构模型 [7]

Transformer模型与Lstm模型的主要区别在多头注意力机制,但同样也需要完整编码encoder的信息才能进行解码,因此联合Attention和CTC的hybrid模型要实现流式主要是通过在encoder上进行改进。其中一种方式是基于chunk-wise的Chunk-SAE(Self-Attention Encoder)[8],将长度的L的音频输入按固定长度分为N个chunk,以其中的一个chunk作为centra chunk( )为例,左边近邻的chunk作为Historical context( ),右边近邻的chunk作为Future context( ),在训练时只有Central chunk产生输出。这样在音频的encoder编码过程中,每次编码的长度就限定在三个chunk范围内( + + ),通过一个滑动窗口每次往后滑动产生输入,从而不再依赖于整段音频输入再进行解码。

这样的方式存在一个问题就是在chunk滑动的过程中存在 重复计算的问题,通过将 编码区对应的隐状态保存在context中,在下一次编码时不再需要编码 ,从保存的context中读取对应位置的隐状态进行复用,减少encoder编码的时间。

图11. Chunk-SAE结构 [8]

解码时以截断区域( + + )的encoder输出K作为decoder的一个输入,与decoder的targets表示Q共同计算截断attention(公式1):

(1)

(1)其中 表示可训练的bias参数, 表示一个噪声值。然后在分别与encoder输出V进行截断多头注意力计算(公式2):

(2)

(2)其中cumprod为累积的乘积函数,对应的就是 之前从 时刻对应的(1-P)的连乘结果。

基于Chunk-SAE的截断的多头注意力机制实现了更高效的流式编解码,最后将decoder的输出概率 与CTC的输出概率 进行联合优化(公式3)输出最终的预测结果。


其中λ和γ都是可调节参数, 为语言模型的输出概率,如果希望构建端到端的模型就不需要语言模型,可以将γ置为0。通过实验比较联合CTC解码的Chunk-SAE模型的性能,相较于离线transformer模型延时降低到320ms,但性能仅仅下降0.18%。

另外一种联合CTC的方式是对注意力机制进行改进,比较典型的一种是TriggeredAttention。其中一种方案[9]在常规的Transformer encoder 中增加2层CNN对输入的音频帧的特征进行降采样,与chunk-wise不同,这里采用的是look-ahead的方式对encoder的输入进行截断,通过CTC预测一个Trigger点,设置一个固定的look-ahead长度作为future context,在编码过程中,只有当到达trigger点加上future context长度的位置,Transformer的encoder才会将当前编码器隐状态的输出送入decoder进行解码,实现流式编解码。

图12. TriggeredSelf-Attention 联合CTC模型结构 [9]

在计算encoder的输出时使用公式4,

(4)

其中, 为一个预设的固定值,就是Future context设置的的帧数,n是当前输入的帧数。关键的地方在于截断点的位置,每个时刻的输入在encoder编码后通过CTC进行预测对齐,CTC实时预测的结果中第一个出现非<blank>的位置就是第一个trigger点,随后出现非<blank>和去重后的trigger点的位置就是序列中其他的trigger点。以下图为例,音频输入包含“dog”这个词的发音,<b>表示blank,t=3,6,7就是trigger点[10]。

图13. Trigger位置预测图示

随后docoder解码时使用Triggered attention,也是使用CTC的概率输出作为attention对齐的辅助信息,计算如公式(5)所示:

(5)

表示截断的frame特征经过encoder的输出, 为输出对应的位置, 表示解码器生成的历史结果, 表示Transformer decoder的输出概率(公式6):

(6)

最终优化的目标函数还是联合优化CTC和Triggered attention,在 LibriSpeech数据集上进行测试,该模型( )与整句输入( )的Transformer相比,CER仅出现较小程度的上升,延时( )也下降到1230ms。

CTC与self-attention的结合,以chunk-wise和look-ahead为主的两种方式对编码输入进行截断,丢失了一部分上下文的信息,但是通过CTC的同步解码能力提供辅助信息用于attention对齐,兼顾准确率和延时性,也是流式语音识别方案一种不错的选择。

03

卷积增强

Transformer由于自注意力机制,擅长捕捉长序列依赖,在序列到序列任务中表现出色,而卷积则擅长对局部特征建模,在图像领域大放异彩。Conformer [11]结合两者优势,在语音识别准确率带入到新的高度。相比于原始Transformer,其主要改进在Encoder如下图所示,具体为:

图14. Conformer encoder 结构

(1)Mutil-Head Attention Module和Feed Forward Module中间加入Convolution Module。

(2)在Mutil-Head Attention Module前再加一个Feed Forward Module。

(3)每个Feed Forward Module采用半步残差连接,即前馈输出乘以0.5再进行相加。

(4)每个模块中,将Layernorm提前。

图15. Mutil-Head Attention Module

(5)将原始Feed Forward Module中的ReLU激活函数使用Swish激活函数替代。

图16. Feed Forward Module

Convolution Module中的结构如图17所示:

图17. Convolution Module

目前主流的端到端语音识别开源工具ESPnet也支持Conformer语音识别模型的搭建,并且在众多数据集上达到SOTA[12]。同时在最近比较热门的既可流又可非流的统一ASR模型中,Conformer取得了非常出色的表现[13],并且大有商用趋势。

04

总结

流式ASR的工程化考虑的是在实现流式模型的基础上搭建服务,使得流式ASR服务可以处理实际业务的大量调用请求,可以实现对业务场景所需的ASR服务的稳定支持。在研究模型的延时性能时,线下测试仅需要参考模型的推理的实时率RTF值(Real Time Factor),但对于部署的ASR服务,还需要考量这个服务部署在单机服务器上可以实现多少量的并发,即一个CPU或GPU在性能跑满时可以支持处理多少个访问请求,并且在用户感觉不到延迟的时间内返回识别结果,然后根据实际业务量来评估需要多少硬件资源来支撑部署ASR服务。因此模型要尽可能的优化和压缩到最少的耗时,在实现高并发性能的同时降低资源的消耗量。从硬件资源的角度来看,Transfomer支持并行计算,使用GPU会带来很大的速度提升。而RNN网络计算时存在时序依赖,GPU的加速效果不是很明显,选择CPU是一种较为经济高效的方式,因此需要根据选用的模型来决定成本较低的硬件配置方案。

另外流式ASR要实现上线使用需要进行反复的优化-验证-测试的迭代,这个逐步验证的过程就是一个完整的工程项目周期,比如现在要在线上用Transfromer-base替换原有的RNN-base模型,要综合考虑硬件成本、推理延时和性能,在项目工程化完成到一定阶段经过A/B测试验证高可用后才能逐步迭代上线,因此目前看到工业界使用较多的流式模型还是以RNN-base为主[14],但以阿里为代表的企业正在积极探索Transformer在流式语音识别上的落地实践[15]。

Transformer在NLP上取得的巨大的成功,在语音领域也同样延续了它优越的性能表现,在语音识别,语音增强[16],语音合成[17],说话人识别[18],声音事件检测[19]等语音领域方向都开始有了相关的应用研究,特别是在语音识别上的应用尤为引人瞩目。本文主要从近年来的一个学术研究热点-流式语音识别的相关研究出发,分享了两种主流的基于Transformer的流式语音识别方案,Transformer-Transducer及self-attention /ctc联合模型。其它的方案还包括与MOCHA[20]的结合和其它编码截断预测方式[21],本文不再做详细介绍。最后我们也期望看到更多Transformer-base的SOTA模型出现,并在工业界得以落地实践,体现Transformer的实际使用价值,推动整个语音识别领域的跨越发展。

参考资料

[1]Hannun, Awni, et al. "Deep speech: Scaling up end-to-end speech recognition."arXiv preprint arXiv:1412.5567(2014).

[2] Linhao Dong, Shuang Xu, and Bo Xu. "Speech-transformer: a no-recurrence sequence-to-sequence model for speech recognition."2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2018.

[3]Karita, Shigeki, et al. "A comparative study on transformer vs rnn in speech applications."2019 IEEE Automatic Speech Recognition and Understanding Workshop (ASRU). IEEE, 2019.

[4] C.-F. Yehet al., "Transformer-Transducer: End-to-End Speech Recognition with Self-Attention,"**p. arXiv:1910.12977Accessed on: October 01, 2019[Online]. Available:https://ui.adsabs.harvard.edu/abs/2019arXiv191012977Y

[5]Q. Zhanget al., "Transformer Transducer: A Streamable Speech Recognition Model with Transformer Encoders and RNN-T Loss,"**p. arXiv:2002.02562Accessed on: February 01, 2020[Online]. Available:https://ui.adsabs.harvard.edu/abs/2020arXiv200202562Z

[6] W. Huang, W. Hu, Y. Yeung, and X. Chen, "Conv-Transformer Transducer: Low Latency, Low Frame Rate, Streamable End-to-End Speech Recognition,"*ArXiv,*vol. abs/2008.05750, 2020.

[7] Watanabe, S., Hori, T., Kim, S., Hershey, J. R., & Hayashi, T. (2017). Hybrid CTC/Attention Architecture for End-to-End Speech Recognition. IEEE Journal of Selected Topics in Signal Processing, 11(8), 1240–1253.

[8] H. Miao, G. Cheng, C. Gao, P. Zhang and Y. Yan, "Transformer-Based Online CTC/Attention End-To-End Speech Recognition Architecture," ICASSP 2020 - 2020 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)

[9] N. Moritz, T. Hori and J. Le, "Streaming Automatic Speech Recognition with the Transformer Model," ICASSP 2020 - 2020 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)

[10] N. Moritz, T. Hori and J. L. Roux, "Triggered Attention for End-to-end Speech Recognition," ICASSP 2019 - 2019 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)

[11] A. Gulatiet al., "Conformer: Convolution-augmented Transformer for Speech Recognition,"*ArXiv,*vol. abs/2005.08100, 2020.

[12] P. Guoet al., "Recent Developments on ESPnet Toolkit Boosted by Conformer,"*ArXiv,*vol. abs/2010.13956, 2020.

[13] B. Zhanget al., "Unified Streaming and Non-streaming Two-pass End-to-end Model for Speech Recognition,"*ArXiv,*vol. abs/2012.05481, 2020.

[14]http://research.baidu.com/Blog/index-view?id=109

[15] Shiliang Zhang, Zhifu Gao, Haoneng Luo,"Streaming Chunk-Aware Multihead Attention for Online End-to-End Speech Recognition",arxiv:https://arxiv.org/pdf/2006.01712.pdf

[16] Jaeyong Kim,Mostafa EI-Khamy,Jungwon Lee ,"T-GSA: Transformer with Gaussian-Weighted Self-Attention for Speech Enhancement",arxiv:https://arxiv.org/abs/1910.06762

[17]Li N , Liu S , Liu Y , et al. "Neural Speech Synthesis with Transformer Network"[J]. Proceedings of the AAAI Conference on Artificial Intelligence, 2019, 33:6706-6713.

[18]X. Chang, W. Zhang, Y. Qian, J. L. Roux and S. Watanabe, "End-To-End Multi-Speaker Speech Recognition With Transformer," ICASSP 2020 - 2020 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)

[19 ]X. Chang, W. Zhang, Y. Qian, J. L. Roux and S. Watanabe, "End-To-End Multi-Speaker Speech Recognition With Transformer," ICASSP 2020 - 2020 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)

[20] Emiru Tsunoo , Yosuke Kashiwagi , Toshiyuki Kumakura,"TOWARDS ONLINE END-TO-END TRANSFORMER AUTOMATIC SPEECH RECOGNITION",arxiv:https://arxiv.org/pdf/1910.11871.pdf

[21] Chengyi Wang, Yu Wu, Liang Lu,"Low Latency End-to-End Streaming Speech Recognition with a Scout Network". arxiv:https://arxiv.org/pdf/2003.10369.pdf

       打包下载链接:

https://pan.baidu.com/s/16XuCtkF5a7VzJnk2YgJ9ow  密码: 6qsq

Transformer +X 研究群:

欢迎加入兴趣组,共同交流Transformer研究进展


推荐阅读:

点击下方图片即可阅读

前沿综述 · 机器学习的可解释性

前沿综述 · Transformer 在各学科中的应用





点击左下角“阅读原文”,了解更多!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

语音中的 Transformer一文打尽! 的相关文章

随机推荐

  • 真机上,微信小程序弹出层中使用textarea组件无法显示文本的问题

    真机上 微信小程序弹出层中使用textarea组件无法显示文本的问题 解决思路 文章链接 最近开发微信小程序发现了一个BUG 最后莫名奇妙地解决了 隐隐约约地感觉和微信小程序地textarea组件的z index层级有关 没有去深究其中原理
  • 【前端知识之Vue】diff算法流程

    前言 本系列主要整理前端面试中需要掌握的知识点 本节介绍diff算法流程以及相关例子 如果想看源码推荐YK菌的 Vue源码 图解 diff算法 与 虚拟DOM snabbdom 最小量更新原理解析 手写源码 updateChildren哦
  • IntelliJ IDEA-配置文件位置

    关于配置文件的位置 一旦开始使用IDEA之后 就需要做很多的配置相关工作 使得IDEA越来越符合你的个人习惯 让你使用起来得心应手 而这些配置信息 都保存在C盘 比如我的就会默认保存在如图所示的位置 C Documents and Sett
  • flutter loading前一个界面关闭后一个界面的loading

    import package flutter cupertino dart import package flutter material dart import package flutter easyloading flutter ea
  • H5 架构和原生架构的区别

    1 App 的 3 种开发方式 表面上看 手机 App 都是同样的东西 就是手机上的应用程序 点击图标就能运行 但是它们的底层技术不一样 按照开发技术 App 可以分成三大类 原生应用 简称 nativeApp Web 应用 简称 WebA
  • 阿里云轻量应用服务器mysql远程连接教程

    阿里云轻量应用服务器mysql远程连接教程 打开轻量应用服务器控制台 打开防火墙 点击添加规则 打开服务器命令行 可以使用Xshell等软件 在阿里云控制台开放3306端口后后在linux系统中也要开放3306端口 在服务器中开放防火墙33
  • esp32搭建lvgl

    platformio 下载两个库 TFT eSPI lv arduino 3 0 1对应lvgl 7 2 7 5对应lvgl6 pio libdeps tft espi user Setup h 驱动芯片选择 颜色顺序 分辨率选择 不同芯片
  • Nginx反向代理配置流式响应

    Nginx 是通过缓存响应内容来处理请求的 也就是说 当 Nginx 接收到完整的响应后 才会将其发送给客户端 所以默认不支持流式响应 这里讲讲 Nginx 反向代理中怎么配置流式响应 一 使用背景 最近使用 Egg js 搭建自动化部署服
  • MyEclipse提示过期,MyEclipse Subscription Expired解决方案

    一 错误描述 某一天打开MyEclipse 突然发现出现如下提示框 1 错误日志 Thank you for choosing MyEclipse Your license expired 1091 days ago To continue
  • @Valid和@Validated在service层的应用及问题汇总

    1 背景 实际开发中 很多时候要对参数校验 比如为空等 除了要在接口的入口处使用 很多普通方法也需要检查 比如service方法 那么如何在service上使用这个参数校验呢 2 使用方式 步骤一 在service接口上加上 Validat
  • [CF1149C](Tree Generator)

    题意 给出一颗树的括号序 有m个操作 每次交换两个括号 保证交换后括号序仍然合法 输出每次操作后 包括未操作时 树的直径 solution 首先转化题目 对于一棵树的括号序 我们找到一段子串 满足将其中匹配的括号消去后剩下的括号最多 那么剩
  • STM32 Flash操作(擦写)过程中器件复位导致数据丢失问题

    1 问题描述 产品在运行过程中需要保存一些断电不丢失的数据 为此将数据保存在STM32内部的flash中 但是测试人员在测试的过程中 修改了数据参数 直接断电重启机器 并没有等待flash的操作时间 导致原有的数据丢失 2 原理分析 本产品
  • 理解准确率(accuracy)、精度(precision)、查全率(recall)、F1

    Precision又叫查准率 Recall又叫查全率 这两个指标共同衡量才能评价模型输出结果 TP TN FP FN的定义 在二分类问题中 Real 1 Real 0 Predict 1 TP FP Predict 0 FN TN TP 预
  • 记录用Anaconda搭建Tensorflow1.13环境

    上文才搭建好了Pytorch环境 这次获得了一篇论文源码 其中用到的是Tensorflow环境 为了复现论文结果 只好再搭建一个Tensorflow环境 首先论文中给出的环境信息是 Tensorflow 1 13 以及 Python 3 这
  • [第六篇]——云服务器之Spring Cloud直播商城 b2b2c电子商务技术总结

    云服务器 云服务器 Elastic Compute Service ECS 是一种简单高效 安全可靠 处理能力可弹性伸缩的计算服务 云服务器管理方式比物理服务器更简单高效 我们无需提前购买昂贵的硬件 即可迅速创建或删除云服务器 云服务器费用
  • flutter强制横屏竖屏设置

    void main 强制横屏 SystemChrome setPreferredOrientations DeviceOrientation landscapeLeft DeviceOrientation landscapeRight ru
  • Latex 约等于符号

    approx
  • 深入理解Python 中的特殊常量None

    False 不同 它不表示 0 也不表示空字符串 而表示没有值 也就是空值 None 有自己的数据类型 我们可以在 IDLE 中使用 type 函数查看它的类型 执行代码如下 gt gt gt type None
  • LangChain 中文入门教程

    文章目录 LangChain 中文入门教程 一 介绍 1 1 背景 1 2 基础功能 二 必知概念 2 1 Loader 加载器 2 2 Document 文档 2 3 Text Spltters 文本分割 2 4 Vectorstores
  • 语音中的 Transformer一文打尽!

    写在前面 自 2017 年 Transformer 技术出现以来 便在 NLP CV 语音 生物 化学等领域引起了诸多进展 知源月旦团队期望通过 Transformer X 梳理清 Transformer 技术的发展脉络 以及其在各领域中的