Документация
Это структура для моделей последовательности к последовательности (SEQ2SEQ), реализованных в Pytorch. Структура имеет модульные и расширяемые компоненты для моделей SEQ2SEQ, обучения и вывода, контрольно -пропускных пунктов и т. Д. Это альфа -выпуск. Мы ценим любые отзывы или вклад.
SEQ2SEQ - это быстро развивающаяся поле с новыми методами и архитектурами, которые часто публикуются. Цель этой библиотеки состоит в том, чтобы облегчить разработку таких методов и применений. Постоянно улучшая качество кода и документации, мы сосредоточимся на следующих пунктах:
Этот пакет требует Python 2.7 или 3.6. Мы рекомендуем создать новую виртуальную среду для этого проекта (используя VirtualEnv или Conda).
pip install numpy (см.В настоящее время мы поддерживаем установку только из исходного кода с помощью Setuptools. Осмотрите исходный код и запустите следующие команды:
pip install -r requirements.txt
python setup.py install
Если у вас уже была установлена версия Pytorch в вашей системе, убедитесь, что активный пакет Torch - по крайней мере версия 0.1.11.
# Run script to generate the reverse toy dataset
# The generated data is stored in data/toy_reverse by default
scripts/toy.sh
TRAIN_PATH=data/toy_reverse/train/data.txt
DEV_PATH=data/toy_reverse/dev/data.txt
# Start training
python examples/sample.py --train_path $TRAIN_PATH --dev_path $DEV_PATH
Потребуется около 3 минут, чтобы тренироваться на процессоре и менее 1 минуты с Tesla K80. После завершения обучения вам будет предложено ввести новую последовательность для перевода, и модель распечатает его прогноз (используйте Ctrl-C для прекращения). Попробуйте пример ниже!
Input: 1 3 5 7 9
Expected output: 9 7 5 3 1 EOS
Контрольные точки организованы экспериментами и временными метками, как показано в следующей структуре файла
experiment_dir
+-- input_vocab
+-- output_vocab
+-- checkpoints
| +-- YYYY_mm_dd_HH_MM_SS
| +-- decoder
| +-- encoder
| +-- model_checkpoint
Пример скрипта по умолчанию сохраняет контрольные точки в папке experiment корневого каталога. Посмотрите на использование образца кода для получения дополнительных вариантов, включая возобновление и загрузку с контрольных точек.
Если у вас есть какие -либо вопросы, отчеты об ошибках и запросы на функции, пожалуйста, откройте проблему на GitHub. Для живых дискуссий, пожалуйста, перейдите в наш лобби друтчика.
Мы ценим любые отзывы или вклад. Не стесняйтесь выполнять небольшие проблемы, такие как исправления ошибок, улучшение документации. Для основных вкладов и новых функций, пожалуйста, обсудите с сотрудниками в соответствующих вопросах.
Мы используем 4-недельные циклы высвобождения, где во время каждой изменений цикла будут направлены к develop ветви и, наконец, слиять в master ветвь в конце каждого цикла.
Мы настраиваем среду разработки с использованием Vagrant. vagrant up с нашим «Vagrantfile», чтобы начать работу.
По умолчанию необходимы следующие инструменты и установлены в среде разработки:
Качество и обслуживание проекта обеспечиваются комплексными тестами. Мы поощряем письменные модульные тесты и интеграционные тесты при внесении новых кодов.
Локально, пожалуйста, запустите nosetests в каталоге корневых пакетов, чтобы запустить модульные тесты. Мы используем Travisci, чтобы потребовать, чтобы запрос на привлечение должен был пройти все модульные тесты, чтобы иметь право на слияние. См. Конфигурацию Трэвиса для получения дополнительной информации.
Мы следуем PEP8 для стиля кода. Особенно стиль DocStrings важен для создания документации.
# Python syntax errors or undefined names
flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics
# Style checks
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics