开始使用免费开始使用

定义编码器

接下来,您将迈出构建机器翻译模型的第一步:实现编码器。与实际应用(例如 Google 的机器翻译服务)中的复杂模型相比,您要实现的编码器非常简单。不过别担心,尽管模型更简洁,所用概念与复杂模型是相同的。这里我们用前缀 en(例如 en_gru)指代与编码器相关的对象,用 de 指代与解码器相关的对象(例如 de_gru)。

您会看到我们把 en_vocab 设为比实际统计值更小(150,而非 228)。缩小词汇表可以降低模型的内存占用。适度缩减是可行的,因为会优先移除最罕见的词。在机器翻译任务中,罕见词通常不如高频词重要。

本练习是课程的一部分

使用 Keras 的机器翻译

查看课程

练习说明

  • 使用 shape 参数,为一个词汇表大小为 en_vocab、序列长度为 en_len 的输入定义 Input 层。
  • 定义一个具有 hsize 个隐藏单元且返回其状态的 keras.layers.GRU 层。
  • en_inputs 传入该 GRU 层以获取输出,将 GRU 的状态赋给 en_state,将输出赋给 en_out
  • 定义一个 keras.models.Model,其输入为 en_inputs,输出为 en_state,并打印模型摘要。

交互式实操练习

通过完成这段示例代码来试试这个练习。

import tensorflow.keras as keras

en_len = 15
en_vocab = 150
hsize = 48

# Define an input layer
en_inputs = keras.layers.____(____=____)
# Define a GRU layer which returns the state
en_gru = ____(____, ____=____)
# Get the output and state from the GRU
____, ____ = ____(____)
# Define and print the model summary
encoder = ____(inputs=____, ____=____)
print(encoder.____)
编辑并运行代码