>>1.00<<>>1.00<<Видео проигрыватель загружается.Воспроизвести видеоВоспроизвестиБез звукаТекущее время 0:00/Продолжительность 1:19Загрузка: 0.00%0:00Тип потока ОНЛАЙНSeek to live, currently behind liveОНЛАЙНОставшееся время -1:19 1xСкорость воспроизведения2x1.75x1.5x1.25x1x, выбрано0.75x0.5xГлавыГлавыОписанияОтключить описания, выбраноСубтитрынастройки субтитров, откроется диалог настройки субтитровСубтитры выкл., выбраноЗвуковая дорожкаPicture-in-PictureПолноэкранный режимThis is a modal window.Начало диалоговго окна. Кнопка Escape закроет или отменит окноТекстColorБелыйЧерныйКрасныйЗеленыйСинийЖелтыйПурпурныйГолубойTransparencyПрозрачностьПолупрозрачныйФонColorЧерныйБелыйКрасныйЗеленыйСинийЖелтыйПурпурныйГолубойTransparencyПрозрачностьПолупрозрачныйПрозрачныйОкноColorЧерныйБелыйКрасныйЗеленыйСинийЖелтыйПурпурныйГолубойTransparencyПрозрачныйПолупрозрачныйПрозрачностьРазмер шрифта50%75%100%125%150%175%200%300%400%Стиль края текстаНичегоПоднятыйПониженныйОдинаковыйТеньШрифтПропорциональный без засечекМоноширинный без засечекПропорциональный с засечкамиМоноширинный с засечкамиСлучайныйПисьменныйМалые прописныеСбросить сбросить все найстройки по умолчаниюГотовоЗакрыть модальное окноКонец диалогового окна.
Здесь на экране вы можете увидеть изображение из лекции, а именно — основной принцип работы и рекуррентной нейронной сети: небольшую схему, которая поможет нам писать код дальше. Будем писать класс, который мы назовём "CharRnnCell". Что у нас есть в этом классе? У нас есть функции "forward" и есть функция "initial state". "initial state" просто заполняет векторы нулями, выход функции "initial state" соответствует переменной "h0", или нулевому скрытому состоянию нашей нейронной сети. Рассмотрим более подробно, что происходит внутри функции "forward". Для начала мы преобразовываем наши входные векторы в эмбеддинги с помощью слоя, который мы берём из библиотеки pytorch, а именно "nn embedding". Дальше мы конкатенируем текущий входной вектор из переменной "x embedding" и скрытое состояние из предыдущего шага, и дальше, с помощью "rnn update" (именно так мы назвали линейный слой функции "init"), мы делаем следующий шаг — предсказываем следующее скрытое состояние. Дальше в ход идёт нелинейность — мы применяем гиперболический тангенс к выходу этого слоя. В итоге, на выход мы передаём следующее скрытое состояние и вероятности для следующего символа. А именно, мы получим 52 вероятности по каждому символу из нашего словаря.
К сожалению, у нас пока нет статистики ответов на данный вопрос,
но мы работаем над этим.