Я собираюсь реализовать RNN с помощью Pytorch. Но до этого у меня возникли некоторые трудности с пониманием кодировки one-hot на уровне символов, которая задается в вопросе.
Пожалуйста, найдите ниже вопрос
Выберите текст, который вы хотите, чтобы ваша нейронная сеть изучила, но помните, что ваш набор данных должен быть достаточно большим, чтобы изучить структуру! RNN обучены на очень разнообразных текстах (романы, тексты песен, ядро Linux и т. д.) с успехом, так что вы может проявить творческий подход. Как один из простых вариантов, Gutenberg Books - это источник бесплатных книг, в которых вы можете скачать полные романы в формате .txt.
Мы будем использовать представление на уровне персонажа для этой модели. Для этого вы можете использовать расширенный ASCII с 256 символами. Читая выбранный вами обучающий набор, вы будете считывать символы по одному в горячую кодировку, то есть каждый символ будет отображаться в вектор из единиц и нулей, где один указывает, какой из символов настоящее:
char → [0, 0, · · ·, 1, · · ·, 0, 0] Ваша RNN будет считывать эти двоичные векторы длиной 256 в качестве входных.
Так, например, я прочитал роман на питоне. Всего уникальных персонажей 97. и где-то около 300 000 персонажей.
Итак, мой ввод будет 97 x 256 с одной матрицей горячего кодирования?
или это будет одна матрица горячего кодирования 300 000 x 256?





Один горячий предполагает, что каждый из ваших векторов должен отличаться в одном месте. Итак, если у вас 97 уникальных символов, я думаю, вам следует использовать 1-горячий вектор размера (97 + 1 = 98). Дополнительный вектор отображает все неизвестные символы в этот вектор. Но вы также можете использовать вектор длиной 256. Итак, вы вводите:
B x N x V (B = размер пакета, N = количество символов, V = размер одного горячего вектора).
Но если вы используете библиотеки, они обычно запрашивают индекс символов в словаре и обрабатывают индекс для одного горячего преобразования. Надеюсь, это поможет.