开始使用免费开始使用

为训练准备数据

在本练习中,您将继续准备数据以训练模型。创建了句子数组和下一个字符数组后,您需要将它们转换为可用于模型的数值。

这一步是必要的,因为 RNN 模型只接受数字而非字符串。您将创建数值数组,在表示句子中字符的位置上填入 0 或 1。1(或 True)表示对应字符在该位置出现,0(或 False)表示该位置没有该字符。

变量 sentencesnext_charn_vocabchars_windownum_seqs(训练数据中的句子数量)以及 numpy(已以 np 导入)都已在环境中加载。

本练习是课程的一部分

使用 Keras 构建语言建模的循环神经网络(RNN)

查看课程

练习说明

  • 实例化一个用零填充的 np.array(),其形状为 (句子数量, 字符窗口大小, 词表大小)
  • 使用字典 char_to_index 将当前字符对应的位置设为 1
  • 将当前的下一个字符设为 1
  • 打印每个数组的第一个位置。

交互式实操练习

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

# Instantiate the variables with zeros
numerical_sentences = np.zeros((____, ____, ____), dtype=np.bool)
numerical_next_chars = np.zeros((num_seqs, n_vocab), dtype=np.bool)

# Loop for every sentence
for i, sentence in enumerate(sentences):
  # Loop for every character in sentence
  for t, char in enumerate(sentence):
    # Set position of the character to 1
    numerical_sentences[i, t, ____] = ____
    # Set next character to 1
    ____[i, char_to_index[next_chars[i]]] = 1

# Print the first position of each
print(____, ____, sep="\n")
编辑并运行代码