解码器

深度学习PyTorch入门(四)

ぃ、小莉子 提交于 2020-02-18 19:17:32
机器翻译 机器翻译(MT): 将一段文本从一种语言自动翻译为另一种语言,用神经网络解决这个问题通常称为神经机器翻译(NMT)。 主要特征: 输出是单词序列而不是单个单词。 输出序列的长度可能与源序列的长度不同。 数据预处理 将数据集清洗、转化为神经网络的输入minbatch 字符在计算机里是以编码的形式存在,我们通常所用的空格是 \x20 ,是在标准ASCII可见字符 0x20~0x7e 范围内。 而 \xa0 属于 latin1 (ISO/IEC_8859-1)中的扩展字符集字符,代表不间断空白符nbsp(non-breaking space),超出gbk编码范围,是需要去除的特殊字符。再数据预处理的过程中,我们首先需要对数据进行清洗。 分词 字符串—单词组成的列表 建立词典 单词组成的列表—单词id组成的列表 载入数据集 Encoder-Decoder encoder:输入到隐藏状态 decoder:隐藏状态到输出 Sequence to Sequence模型 模型: 训练 预测 具体结构: Beam Search 简单greedy search: 维特比算法:选择整体分数最高的句子(搜索空间太大) 集束搜索: 注意力机制 在“编码器—解码器(seq2seq)”⼀节⾥,解码器在各个时间步依赖相同的背景变量(context vector)来获取输⼊序列信息。当编码器为循环神经

TASK04-注意力机制-机器翻译-Transformer

人盡茶涼 提交于 2020-02-18 05:05:08
将注意力机制放到这里,以后会用到。 练习题放在最前面: 关于Transformer描述正确的是: 在训练和预测过程中,解码器部分均只需进行一次前向传播。 Transformer 内部的注意力模块均为自注意力模块。 解码器部分在预测过程中需要使用 Attention Mask。 自注意力模块理论上可以捕捉任意距离的依赖关系。 答案解释 选项1:训练过程1次,预测过程要进行句子长度次 选项2:Decoder 部分的第二个注意力层不是自注意力,key-value来自编码器而query来自解码器 选项3:不需要 选项4:正确,因为自注意力会计算句子内任意两个位置的注意力权重 2. 在Transformer模型中,注意力头数为h,嵌入向量和隐藏状态维度均为d,那么一个多头注意力层所含的参数量是: 4hd24hd^24hd2 (3h+1)d2(3h + 1)d^2(3h+1)d2 4d24d^24d2 3hd23hd^23hd2 答案解释 参考MultiHeadAttention模块的定义。 hhh个注意力头中,每个的参数量为3d23d^23d2,最后的输出层形状为hd×dhd \times dhd×d,所以参数量共为4hd24hd^24hd2。 3. 下列对于层归一化叙述错误的是: 层归一化有利于加快收敛,减少训练时间成本 层归一化对一个中间层的所有神经元进行归一化

语音识别技术简介

瘦欲@ 提交于 2020-02-15 22:26:28
/*--> */ /*--> */ 1 自动语音识别简介 语音识别技术,也可以称为自动语音识别( Automatic Speech Recognition , ASR ),其任务是把人所发出的语音中词汇内容转换为计算机可读入的文本。语音识别技术是一种综合性的技术,它涉及到多个学科领域,如发声机理和听觉机理、信号处理、概率论和信息论、模式识别以及人工智能等等。 目前,主流的大词汇量语音识别系统中通常采用基于统计模型的识别技术,典型的基于统计模型的语音识别系统通常有如下几个基本组成模块 : 信号处理及特征提取模块。该模块的主要任务是从输入的语音信号中提取特征,用于声学模型的建模以及解码过程。但在提取特征之前也需要负责对语音信号进行降噪等处理,以提高系统的鲁棒性。 统计声学模型。通常的语音识别系统大都使用隐马尔科夫模型对词,音节、音素等基本的声学单元进行建模,生成声学模型。 语言模型。语言模型对系统所需识别的语言在单词层面上进行建模。语言模型包括正则语言,上下文无关文法的各种语言模型,但是语言的语法通常很复杂,语法文件中的语法规则会很多,并且需要繁重的人工劳动来完成语法规则的编写,所以但目前大多数语音识别系统普遍采用统计语言模型,其中大都是基于统计的 N 元语法( N-gram )模型及其变体。 发音词典。发音词典包含系统所能处理的单词的集合,并标明了其发音

论文阅读 Tacotron2

蓝咒 提交于 2020-02-13 00:52:54
Tacotron2 摘要 引言 2 模型架构 2.1 内部特征表示 2.2 频谱图预测网络 2.3 WaveNet 声码器 3 实验结果 3.1 训练步骤 3.2 评估 摘要 这篇论文描述了Tacotron2,一个从文字直接转化为语音的神经网络。这个体系是由字符嵌入到梅尔频谱图的循环序列到序列神经网络组成的,然后是经过一个修改过后的WaveNet,该模型的作用是将频谱图合成波形图。这个模型取得了不错的效果MOS4.53。为了验证我们的设计选择,我们介绍了系统关键组件的简化测试以及评估了使用梅尔频谱图作为WaveNet的条件输入的影响(不是语言,持续时间和功能)。我们进一步展示了,使用这种紧凑的声学中间表示形式可以大幅度减小WaveNet体系结构的大小。 引言 TTS尽管进行了数十年的调查,但还是有一个大问题。随着时间的推移,不同的技术在这片领域中施展拳脚。单端选择的级联合成,将预先记录的波形拼在一起在之前好长时间都是比较先进的技术。统计参数语音合成,它直接生成语音特征的平滑轨迹是由声码器合成,随后解决了级联合成在声音边界不真实的问题。然而,与人类声音比起来,还是稍显不自然。 WaveNet,是一个时域生成模型,产生的声音可以跟人类媲美,现在好多TTS系统已经在用了。但是WaveNet的输入(语言特征,预测对数基本频率和音素持续时间),需要大量的专业领域知识才能产生

LengthFieldBasedFrameDecoder

你离开我真会死。 提交于 2020-02-09 10:11:07
LengthFieldBasedFrameDecoder 详解 疯狂创客圈 Java 分布式聊天室【 亿级流量】实战系列之 -31【 博客园 总入口 】 文章目录 LengthFieldBasedFrameDecoder 详解 写在前面 1.1.1. 解码器:FrameDecoder 1.1.1. 难点:自定义长度帧解码器 写在前面 ​ 大家好,我是作者尼恩。目前和几个小伙伴一起,组织了一个高并发的实战社群【疯狂创客圈】。正在开始 高并发、亿级流程的 IM 聊天程序 学习和实战 有的小伙伴对帧解码器FrameDecoder ,尤其是LengthFieldBasedFrameDecoder(自定义长度帧解码器) 不是太了解,尤其是觉得LengthFieldBasedFrameDecoder 参数多,不理解。 ​ 这里单独撰文,对LengthFieldBasedFrameDecoder 的参数,进行重点介绍。看完之后,就会彻底的了解了。 1.1.1. 解码器:FrameDecoder 前面所讲的解码器,在获取入站数据时,都是通过ByteBuf的基础类型读取方法,读取到是基础的数据类型,比如int整数。如果在解码时,读取的不是基础类型,而是非常基础的二进制数据,该如何处理呢? 大家都知道,TCP协议是个“流”性质协议,它的底层根据二进制缓冲区的实际情况进行包的划分,会把上层(Netty层

netty权威指南学习笔记四——TCP粘包/拆包之粘包问题解决

筅森魡賤 提交于 2020-02-07 00:25:52
  发生了粘包,我们需要将其清晰的进行拆包处理,这里采用LineBasedFrameDecoder来解决 LineBasedFrameDecoder的工作原理是它依次遍历ByteBuf中的可读字节,判断看是否有“\n”或“\r\n”,如果有,就以此为结束位置,从可读索引到结束位置区间的字节就组成一行,它是以换行为结束标志的编码器,支持携带结束符或者不携带结束符两种方式,同时支持配置单行最大长度,如果连续读取到的最大长度后仍没有发现换行符,就会抛出异常,同时忽略掉之前读到的异常码流。 StringDecoder的功能非常简单,就是将接收到的对象转换为字符串,然后继续调用后面的Handler. LineBasedFrameDecoder+StringDecoder组合就是按行切换的文本解码器。 主要思路是改造客户端和服务端的处理IO的类之前添加相应解码器,解码器之后才去调用IO处理类的Handler。 客户端改造的代码部分 TheClientServer 在处理IO的类 initChannel()方法中调用处理IO类前添加相关解码的方法 1 public class ClientChildHandler extends ChannelInitializer<SocketChannel>{ 2 @Override 3 protected void initChannel

avcodec_send_packet函数解析

对着背影说爱祢 提交于 2020-01-28 01:32:04
avcodec_send_packet(AVCodecContext *avctx, const AVPacket *avpkt): 1) 将原始数据包作为解码器的输入 2) 该函数在内部会复制AVCodecContext的相关字段 (具体有哪些字段,起什么用,俺也不知道。。。) ,这些字段会影响每个包的解析,并且在实际解码的过程中会使用到(例如:AVCodecContext.skip_frame的这个字段,会告诉解码直接抛弃该函数发送包中包含的帧数据) 3) @warning 输入缓冲区avpkt->数据必须是大于实际读取字节的AV_INPUT_BUFFER_PADDING_SIZE,因为一些优化的位流读取器一次读取32位或64位,可以在最后读取。 4) @warning 不要将此API与同一AVCodecContext上的遗留API(如avcodec_decode_video2())混合使用。 在现在或未来的libavcodec版本,它将返回意想不到的结果(说白了,就是以前版本的的解码函数被弃用了,官方推荐使用新API) 5) @note AVCodecContext必须使用 avcodec_open2()打开,然后才可以将包提供给解码器(通过知道到解码器做参数alloc创建出解码器上下文后,还需要打开解码器上下文) 6) @param[in] avpkt

目标检测论文核心思想,18-19-20年论文梗概

余生颓废 提交于 2020-01-24 23:17:22
论文太多来不及看,有些论文用了很大篇幅印证了某种模块有用或者没用,对于不研究这部分的人来说了解一下结论,这个模块有什么优缺点就够了。因而记录一下2018-2019-2020这几年泛读的论文梗概: 文章目录 DetNet: A Backbone network for Object Detection SpineNet: Learning Scale-Permuted Backbone for Recognition and Localization EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks DetNet: A Backbone network for Object Detection 论文: DetNet: A Backbone network for Object Detection ,2018年清华,Face++旷世合作论文,孙剑大神参与 某人的实现代码 点这 目标分类训练的网络作为目标检测backbone是否合适?任务不同肯定有不同,本文就是研究任务切换时backbone直接用的优劣分析。 ImageNet分类模型直接做backbone不够好, 检测分类两个任务有差异。 (i)诸如FPN和RetinaNet之类的最新物体检测器通常涉及额外的stage,以完成图像分类任务

Decoder和Encoder

江枫思渺然 提交于 2020-01-19 16:00:53
一、什么是Decoder和Encoder 在Netty里面,有四个核心概念,它们分别是: Channel:一个客户端与服务器通信的通道。 ChannelHandler:业务逻辑处理器, 通常情况下,业务逻辑都是存在于ChannelHandler之中。 ChannelInboundHandler:输入处理器 ChannelOutboundHandler:输出处理器 ChannelPipeline:用于存放ChannelHandler的双向链表。 ChannelContext:通信管道的上下文 它们之间的交互流程是: 事件传递给 ChannelPipeline 的第一个 ChannelHandler ChannelHandler 通过关联的 ChannelHandlerContext 传递事件给 ChannelPipeline 中的 下一个 而我们要讲的Decoder和Encoder,就是ChannelInboundHandler和ChannelOutboundHandler,分别用于在数据流进来的时候将字节码转换为消息对象和数据流出去的时候将消息对象转换为字节码。 二、解码器Decoder 对于解码器,Netty中主要提供了抽象基类 ByteToMessageDecoder 和 MessageToMessageDecoder 1. 抽象类 ByteToMessageDecoder

H264协议字段简单分析

≡放荡痞女 提交于 2020-01-14 10:28:51
H264协议字段简单分析 一、 h264基础概念 RBSP: 原始字节序列载荷-->在SODB的后面填加了结尾比特(RBSP trailing bits 一个bit“1”)若干比特“0”,以便字节对齐。 EBSP: 扩展字节序列载荷– >在RBSP基础上填加了仿校验字节(0X03)它的原因是: 在NALU加到Annexb上时,需要填加每组NALU之前的开始码 StartCodePrefix,如果该NALU对应的slice为一帧的开始则用4位字节表示,ox00000001,否则用3位字节表示 ox000001.为了使NALU主体中不包括与开始码相冲突的,在编码时,每遇到两个字节连续为0,就插入一个字节的0x03。解码时将0x03去掉。 也称为脱壳操作。 H.264的功能分为两层,视频编码层(VCL)和网络提取层(NAL) VCL数据即被压缩编码后的视频数据序列。把VCL数据要封装到NAL单元中之后,才可以用来传输或存储。H.264 的编码视频序列包括一系列的NAL 单元,每个NAL 单元包含一个RBSP。编码片(包括数据分割片IDR 片)和序列RBSP 结束符被定义为VCL NAL 单元,其余为NAL 单元。典型的RBSP 单元序列如图所示。每个单元都按独立的NAL 单元传送。单元的信息头(一个字节)定义了RBSP 单元的类型,NAL 单元的其余部分为RBSP 数据。 NAL单元