41 lines
3.9 KiB
Markdown
41 lines
3.9 KiB
Markdown
|
### Вариант 9
|
|||
|
### Задание на лабораторную работу:
|
|||
|
Выбрать художественный текст (четные варианты – русскоязычный, нечетные – англоязычный) и
|
|||
|
обучить на нем рекуррентную нейронную сеть для решения задачи генерации.
|
|||
|
Подобрать архитектуру и параметры так, чтобы приблизиться к максимально осмысленному результату.
|
|||
|
Далее разбиться на пары четный-нечетный вариант, обменяться разработанными сетями и проверить,
|
|||
|
как архитектура товарища справляется с вашим текстом.
|
|||
|
В завершении подобрать компромиссную архитектуру, справляющуюся достаточно хорошо с обоими видами
|
|||
|
текстов.
|
|||
|
### Как запустить лабораторную работу:
|
|||
|
Выполняем файл gusev_vladislav_lab_7.py, решение будет в консоли.
|
|||
|
|
|||
|
### Технологии
|
|||
|
Keras - это библиотека для Python, позволяющая легко и быстро создавать нейронные сети.
|
|||
|
NumPy - библиотека для работы с многомерными массивами.
|
|||
|
|
|||
|
### По коду
|
|||
|
1) Читаем файл с текстом
|
|||
|
2) Создаем объект tokenizer для превращение текста в числа для нейронной сети.
|
|||
|
3) Создаем модель нейронной сети с следующими аргументами:
|
|||
|
|
|||
|
- Embedding - это слой, который обычно используется для векторного представления категориальных данных, таких как слова или символы. Он позволяет нейронной сети изучать эмбеддинги, то есть отображение слов (или символов) в вектора низкой размерности. Это позволяет сети понимать семантические отношения между словами.
|
|||
|
- LSTM - это слой, представляющий собой рекуррентный нейрон, который способен учитывать зависимости в последовательных данных. Он хорошо подходит для обработки последовательных данных, таких как текст.
|
|||
|
- Dense - это полносвязный слой, который принимает входные данные и применяет весовые коэффициенты к ним. Этот слой часто используется в конце нейронных сетей для решения задачи классификации или регрессии.
|
|||
|
|
|||
|
4) Обучаем модель на 100 эпохах (итерациях по данным) и генерируем текст.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
![img.png](img.png)
|
|||
|
Английский 100 эпох
|
|||
|
![img_1.png](img_1.png)
|
|||
|
|
|||
|
![img_3.png](img_3.png)
|
|||
|
Русский 100 эпох
|
|||
|
![img_2.png](img_2.png)
|
|||
|
Русский 17 эпох
|
|||
|
![img_4.png](img_4.png)
|
|||
|
### По консоли
|
|||
|
- Английский текст генерировался на 100 эпохах, начало получилось осмысленным, но чем ближе к концу тем хуже.
|
|||
|
- Русский текст также генерировался на 100 эпохах, с многочисленными ошибками в словах. Русский текст,сгенерированный на 17 эпохах по ошибкам в словах оказался лучше, но всё равно не идеально.
|