视频字幕
欢迎学习机器翻译中的编码器构建。编码器是序列到序列模型的重要组成部分,它将源语言的文本序列转换为包含语义信息的上下文向量。编码器主要包含四个层次:输入层接收原始文本序列,Embedding层将词索引转换为密集向量,LSTM层处理序列信息,最后输出编码器状态用于解码器。
现在我们来分析编码器代码的第一部分。首先导入必要的Keras组件:Input用于定义输入层,LSTM是长短期记忆网络,Dense是全连接层,Embedding是词嵌入层,Model用于构建模型。接下来设置两个重要参数:hidden_size_1设为64,作为词嵌入的维度;hidden_size_2设为128,作为LSTM的隐藏单元数。这些参数决定了模型的容量和表达能力。
接下来分析输入层和Embedding层的构建。输入层使用Input函数定义,shape参数指定输入序列的长度为max_length,每个位置存储一个词汇表中的索引。Embedding层将这些整数索引转换为密集的向量表示。eng_vocab_size参数指定词汇表大小,hidden_size_1指定每个词向量的维度。mask_zero参数设为True,使模型能够忽略序列中的填充值,这对处理变长序列非常重要。
现在分析LSTM层的构建和状态提取。LSTM层使用128个隐藏单元,这决定了模型的记忆容量。关键参数return_state设为True,使LSTM不仅返回每个时间步的输出序列,还返回处理完整个输入后的最终状态。LSTM返回三个部分:encoder_output是序列输出,encoder_h是最终隐藏状态,encoder_c是最终单元状态。最后将隐藏状态和单元状态组合成encoder_state,这就是编码器的核心输出,包含了输入序列的完整语义信息。
最后总结编码器的完整构建流程。编码器将源语言文本序列通过四个步骤转换为语义向量:首先输入层接收文本序列,然后Embedding层将词索引转为密集向量,接着LSTM层处理序列并提取语义信息,最后输出编码器状态。这个状态包含了源语言的完整语义信息,将作为解码器的初始状态,指导目标语言的生成。编码器是机器翻译模型的核心组件,实现了从变长文本到固定向量的转换,为高质量翻译奠定了基础。