Подготовка данных для обучения
В этом упражнении вы продолжите подготовку данных для обучения модели. После создания массивов предложений и следующих символов необходимо преобразовать их в числовые значения, которые можно использовать в модели.
Этот шаг необходим, поскольку модели RNN работают только с числами, а не со строками. Вы создадите числовые массивы, в которых позиции, соответствующие символам из предложений, будут содержать нули или единицы. Единицы (или True) означают, что соответствующий символ присутствует, а нули (или False) — что символ в данной позиции предложения отсутствует.
Переменные sentences, next_char, n_vocab, chars_window, num_seqs (количество предложений в обучающих данных) уже загружены в среду, а также numpy как np.
Это упражнение является частью курса
Рекуррентные нейронные сети (RNN) для языкового моделирования с Keras
Инструкции к упражнению
- Создайте экземпляр
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")