解码器

netty通用解码器LengthFieldBasedFrameDecoder

牧云@^-^@ 提交于 2019-12-19 11:39:58
2.2.4. LengthFieldBasedFrameDecoder解码器 了解TCP通信机制的读者应该都知道TCP底层的粘包和拆包,当我们在接收消息的时候,显示不能认为读取到的报文就是个整包消息,特别是对于采用非阻塞I/O和长连接通信的程序。 如何区分一个整包消息,通常有如下4种做法: 1) 固定长度,例如每120个字节代表一个整包消息,不足的前面补位。解码器在处理这类定常消息的时候比较简单,每次读到指定长度的字节后再进行解码; 2) 通过回车换行符区分消息,例如HTTP协议。这类区分消息的方式多用于文本协议; 3) 通过特定的分隔符区分整包消息; 4) 通过在协议头/消息头中设置长度字段来标识整包消息。 前三种解码器之前的章节已经做了详细介绍,下面让我们来一起学习最后一种通用解码器-LengthFieldBasedFrameDecoder。 大多数的协议(私有或者公有),协议头中会携带长度字段,用于标识消息体或者整包消息的长度,例如SMPP、HTTP协议等。由于基于长度解码需求的通用性,以及为了降低用户的协议开发难度,Netty提供了LengthFieldBasedFrameDecoder,自动屏蔽TCP底层的拆包和粘包问题,只需要传入正确的参数,即可轻松解决“读半包“问题。 下面我们看看如何通过参数组合的不同来实现不同的“半包”读取策略

变分自动编码器(VAE)

做~自己de王妃 提交于 2019-12-18 06:12:33
VAE(Variational Autoencoder)的原理 Kingma, Diederik P., and Max Welling. "Auto-encoding variational bayes." arXiv preprint arXiv:1312.6114 (2013). 论文的理论推导见:https://zhuanlan.zhihu.com/p/25401928 中文翻译为:变分自动编码器 转自:http://kvfrans.com/variational-autoencoders-explained/ 下面是VAE的直观解释,不需要太多的数学知识。 什么是变分自动编码器? 为了理解VAE,我们首先从最简单的网络说起,然后再一步一步添加额外的部分。 一个描述神经网络的常见方法是近似一些我们想建模的函数。然而神经网络也可以被看做是携带信息的数据结构。 假如我们有一个带有解卷积层的网络,我们设置输入为值全为1的向量,输出为一张图像。然后,我们可以训练这个网络去减小重构图像和原始图像的平均平方误差。那么训练完后,这个图像的信息就被保留在了网络的参数中。 现在,我们尝试使用更多的图片。这次我们用one-hot向量而不是全1向量。我们用[1, 0, 0, 0]代表猫,用[0, 1, 0, 0]代表狗。虽然这要没什么问题,但是我们最多只能储存4张图片。当然

论文翻译-语音合成:Tacotron 2

北战南征 提交于 2019-12-14 09:10:34
原论文地址:https://arxiv.org/abs/1712.05884 摘要 这篇论文描述了Tacotron 2, 一个直接从文本合成语音的神经网络架构。系统由两部分构成,一个循环seq2seq结构的特征预测网络,把字符向量映射到梅尔声谱图,后接一个WaveNet模型的修订版,把梅尔声谱图合成为时域波形。我们的模型得到了4.53的平均意见得分(MOS),而专业录制语音的MOS得分是4.58。为了验证模型设计,我们对系统的关键组件作了剥离实验研究,并且评估了使用梅尔频谱替代语言学、音长和F0特征作为WaveNet输入带来的影响。我们进一步展示了使用紧凑的声学中间表征可以显著地简化WaveNet架构。 索引词: Tacotron 2, WaveNet, text-to-speech 1. 介绍 从文本生成自然语音(语音合成,TTS)研究了几十年[1]仍然是一项有挑战的任务。这一领域的主导技术随着时代的发展不断更迭。单元挑选和拼接式合成方法,是一项把预先录制的语音波形的小片段缝合在一起的技术[2, 3],过去很多年中一直代表了最高水平。统计参数语音合成方法[4, 5, 6, 7],是直接生成语音特征的平滑轨迹,然后交由声码器来合成语音,这种方法解决了拼接合成方法中出现的边界人工痕迹的很多问题。然而由这些方法构造的系统生成的语音与人类语音相比,经常模糊不清并且不自然。 WaveNet

【论文阅读CVPR2019】Text2Scene: Generating Compositional Scenes from Textual Descriptions

ぃ、小莉子 提交于 2019-12-10 13:10:14
目录 写在前面: 1.本文的主要贡献: 2.相关工作: 3.模型各个部分介绍 3.1文本编码器 3.2对象和属性解码器 3.2.1基于注意力机制的对象解码器 3.2.2基于注意力机制的属性解码器 3.3 前向嵌入模块 论文题目: Text2Scene: Generating Compositional Scenes from Textual Descriptions (根据文本描述生成合成场景) 论文原文: https://arxiv.org/abs/1809.01110 论文出处: CVPR2019 论文原作者: Fuwen Tan1 Song Feng2 Vicente Ordonez1 1University of Virginia, 2IBM Thomas J. Watson Research Center. 报告人: 苏叶 写在前面: 这篇文章没有使用当下比较流行的GANS,而是通过关注输入文本的不同部分和生成场景的当前状态,学会在每一个时间步上依次生成对象及其属性(位置、大小、外观等)。作者证明在较小的修改下,所提出的框架模型可以处理生成不同形式的场景。包括卡通场景,与真实场景对应的对象布局和合成图像。和最先进的使用自动度量的GANS和基于人类判断的高级方法相比,具有可解释结果的优势。 本文调整和训练模型可以生成三种类型的场景:(1)抽象场景(2

一文详解transformer(Attention Is All You Need)原理

南笙酒味 提交于 2019-12-05 22:16:08
谈起自然语言,就不得不说到现在大火的bert以及openai gpt-2,但是在理解这些模型之前,我觉得首先应该了解transformer,因本人水平有限,在看了transformer的论文之后也一知半解,在分享今天的知识之前,我们先简单了解一下seq2seq 首先要说到seq2seq的发展历史,从单纯的RNN-RNN到LSTM-LSTM,再到BiLSTM-BiLSTM或者BiGRU-BiGRU,首先说到RNN的缺陷会导致梯度消失,LSTM-LSTM改进之后,解决了梯度消失的问题,后面发展是加了双向的BiLSTM-BiLSTM或者BiGRU-BiGRU Ray Mooney,一个非常著名的计算机语义学家抱怨的说到,you cann't cram the meaning of whole %$& sentence into a single %$&* vector! 因为每句话长度不一,你不能让我把大量的信息塞进固定的向量中,这样让学习变得太困难了。 atttention后面开始产生,Transformer是第一个完全依赖于self-attention来计算其输入和输出表示的转换模型,而不使用序列对齐的RNNs或卷积。 传统的双向RNN模型图 今天翻译一篇非常优秀的详解transformer文章,感谢作者的详细讲解,本人翻译水平有限(英文水平好的可以直接看原文),文章篇幅较长

对Attention is all you need 的理解

南楼画角 提交于 2019-12-05 22:13:56
本文参考的原始论文地址: https://arxiv.org/abs/1706.03762 谷歌昨天在arxiv发了一篇论文名字教Attention Is All You Need,提出了一个只基于attention的结构来处理序列模型相关的问题,比如机器翻译。传统的神经机器翻译大都是利用RNN或者CNN来作为encoder-decoder的模型基础,而谷歌最新的只基于Attention的Transformer模型摒弃了固有的定式,并没有用任何CNN或者RNN的结构。该模型可以高度并行地工作,所以在提升翻译性能的同时训练速度也特别快。 以下是谷歌Transformer的结构示意图。 模型分为编码器和解码器两个部分,编码器由6个相同的层堆叠在一起,每一层又有两个支层。第一个支层是一个多头的自注意机制,第二个支层是一个简单的全连接前馈网络。在两个支层外面都添加了一个residual的连接,然后进行了layer nomalization的操作。模型所有的支层以及embedding层的输出维度都是 d m o d e l = 512 //--> . 模型的解码器也是堆叠了六个相同的层。不过每层除了编码器中那两个支层,解码器还加入了第三个支层,如图中所示同样也用了residual以及layer normalization。具体的细节后面再讲。

Netty 编解码器

隐身守侯 提交于 2019-12-05 19:11:18
解码器 实现了 ChannelInBoundHandler 将字节解码为消息 : ByteToMessageDecoder 和 ReplayingDecoder 将一种消息解码为另一种 : MessageToMessageDecoder 编码器 将消息编码为字节:MessageToByteEncoder 将消息编码为消息 来源: https://www.cnblogs.com/fubinhnust/p/11940529.html

LengthFieldBasedFrameDecoder

风流意气都作罢 提交于 2019-12-05 14:52:32
原文链接: https://www.cnblogs.com/crazymakercircle/p/10294745.html 1.1.1. 解码器:FrameDecoder 前面所讲的解码器,在获取入站数据时,都是通过ByteBuf的基础类型读取方法,读取到是基础的数据类型,比如int整数。如果在解码时,读取的不是基础类型,而是非常基础的二进制数据,该如何处理呢? 大家都知道,TCP协议是个“流”性质协议,它的底层根据二进制缓冲区的实际情况进行包的划分,会把上层(Netty层)的ByteBuf包,进行重新的划分和重组,组成一帧一帧的二进制数据。换句话说,一个上层Netty中的 ByteBuf包,可能会被TCP底层拆分成多个二进制数据帧进行发送;也有可能,底层将多个小的ByteBuf包,封装成一个大的底层数据帧发送出去。 问题来了:如何从底层的二进制数据帧中,界定出来上层数据包的边界,也即是上层包的起点和末尾呢?别急,界定的办法,还是很多的。比如说,简单一点方法就是规定上层数据包的长度。例如,规定每个上层数据包的长度为100byte。再比如说,可以规定上层包的分割符号,比如换行符。无论采用什么方法,最为重要的是,发送方和接收方,在界定方法上必须保持一致。 Netty中,提供了几个重要的可以直接使用的帧解码器。这里先介绍一个最为基础的,它就是LineBasedFrameDecoder

transformer模型简介

元气小坏坏 提交于 2019-12-05 06:28:15
Transformer模型由《Attention is All You Need》提出,有一个完整的Encoder-Decoder框架,其主要由attention(注意力)机制构成。论文地址: https://arxiv.org/abs/1706.03762 。 其整体结构如图所示: 模型分为编码器(Encoder)和解码器(Decoder)两部分,包含内部结构的总体结构如下图所示: 图二 在论文中编码器部分由6个相同编码器叠在一起,解码器部分也是由6个相同解码器叠在一起,编码器之间不共享参数。(这里不一定要是6个) 在将词向量表示送入编码器、解码器之前,先做 positional encoding,下面依次对 positional encoding、encoding、decoding进行介绍: 1、positional encoding 如图所示,由于attention机制不包含位置信息,因此句子首先进行embedding得到词向量表示,同时为了增加位置信息,根据句子中词的位置信息给词嵌入添加位置编码向量,论文中添加位置编码的方法是:构造一个跟输入embedding维度一样的矩阵,然后跟输入embedding相加得到multi-head attention 的输入。 作者希望引入绝对位置的编码公式,让模型能够学习到相对位置信息,作者使用的positional

神经机器翻译(NMT)详细资料整理

蹲街弑〆低调 提交于 2019-12-03 04:33:30
1 简介 自2013年提出了神经机器翻译系统之后,神经机器翻译系统取得了很大的进展。最近几年相关的论文,开源系统也是层出不穷。本文主要梳理了神经机器翻译入门、进阶所需要阅读的资料和论文,并提供了相关链接以及简单的介绍,以及总结了相关的开源系统和业界大牛,以便其他的小伙伴可以更快的了解神经机器翻译这一领域。 随着知识的逐步积累,本文后续会持续更新。请关注。 2 入门资料 这部分主要整理了神经机器翻译入门的资料以及所需的一些基础知识,如RNN、LSTM、GRU等。 2.1 神经机器翻译入门资料 1) CIPS青工委学术专栏第9期 | 神经机器翻译 链接: http://www.cipsc.org.cn/qngw/?p=953 介绍:由熊德意、张民等老师所写,梳理了神经机器翻译的历史发展;介绍了采用注意力机制的神经机器翻译模型的特点;总结了神经机器翻译的译文问题:1)如词汇表规模受限问题、2)源语言翻译覆盖问题、3)翻译不忠实问题; 就当前的研究热点,大致就三个问题进行了讨论:1)规模受限词语表问题、2)注意力机制问题、3)神经机器翻译和传统统计机器翻译的结合。 2) 基于深度学习的机器翻译研究进展 链接: http://www.caai.cn/index.php?s=/Home/Article/qikandetail/year/2016/month/02.html 介绍