diff --git a/README.md b/README.md index bc22d6e3a9df3e4a7e5890b726ed896a613f4f17..fa0397238f23213ea4a4e1d35ccf989b8acad22c 100644 --- a/README.md +++ b/README.md @@ -13,28 +13,30 @@ Kодировщик использует LSTM для вычисления век Параметры бейзлайна: | Версия | Исходный размер, байты | Размер после сжатия, байты | Коэффициент сжатия | Затраченное время, с | -|:------:|:----------------------:|:--------------------------:|:------------------:|:------------------: | -| Baseline | 100000 | 47150 | 2.12 | 783 | +|:------:|:----------------------:|:--------------------------:|:------------------:|:------------------:| +| Baseline | 100000 | 38283 | 2.63 | 296 | ## Описание задания к лабораторной работе Улучшить код так, чтобы он: -- либо на том же сжатии показывал уменьшение времени кодирования и декодирования на 100%; -- либо обеспечивал улучшение коэффициента сжатия на 100% при тех же временных затратах. +- либо **на том же сжатии** показывал **уменьшение времени кодирования и декодирования в 3 раза**; +- либо обеспечивал **улучшение коэффициента сжатия на 30%** при **тех же временных затратах**. Можно улучшать следующие модули: - Предобработка: заменять слова из предварительно созданного словаря уникальным кодом, использовать идею из Byte-Pair Encoding токенизации и т.д.; -- Нейронная сеть: использование другой архитектуры (GRU, Transformer и др.), изменить количество слоёв, функции активации, связи между слоями и т.д.; +- Нейронная сеть: использование другой архитектуры (GRU, Transformer и др.), изменить функции активации, связи между слоями и т.д.; - Арифметический кодер: учесть возможную память источника, оценка вероятностей и т.д. Требования к реализации: - Результаты должны быть продемонстрированы на enwik5 из папки ./data/; - Восстановленый после сжатия файл должен полностью совпадать с оригинальным; -- В результатах приложить таблицу выше, обновив значения базового решения для вашего устройства и добавив строчку с улучшенным решением. +- В результатах приложить таблицу выше, **обновив значения базового решения для вашего устройства** и добавив строчку с улучшенным решением. +- Измерения времени кодирования и декодирования базовой и предложенной версии должны быть выполнены на одном и том же устройстве. -На почту eabelyaev@itmo.ru прислать отчет в виде презентации в pdf формате, который включает в себя: +На почту eabelyaev@itmo.ru прислать отчёт в виде презентации в pdf формате, который включает в себя: - ФИО студента, номер группы. - Описание предложенной модификации и результаты. +- Отчёт должен содержать объяснение за счёт чего получилось улучшить базовую архитектуру. - Ссылку на репозиторий с исходным кодом проекта и инструкцию по запуску. ## Литература diff --git a/main.py b/main.py index de4df058e676f456686e35a014fbf6212066f7f6..78e65835b2fbeef62120731597315f892335ae48 100644 --- a/main.py +++ b/main.py @@ -14,17 +14,17 @@ os.environ['TF_DETERMINISTIC_OPS'] = '1' # The batch size for training batch_size = 256 # The sequence length for training -seq_length = 15 +seq_length = 16 # The number of units in each LSTM layer -rnn_units = 400 +rnn_units = 256 # The number of LSTM layers -num_layers = 4 +num_layers = 2 # The size of the embedding layer -embedding_size = 1024 +embedding_size = 256 # The initial learning rate for optimizer -start_learning_rate = 0.0005 +start_learning_rate = 0.005 # The final learning rate for optimizer -end_learning_rate = 0.0002 +end_learning_rate = 0.001 # The mode for the program, "compress", "decompress", "both" mode = 'both' diff --git a/utils.py b/utils.py deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000