선적 서류 비치
이것은 Pytorch에서 구현 된 Seq2Seq (sequence-to-equence) 모델을위한 프레임 워크입니다. 프레임 워크에는 SEQ2SEQ 모델, 교육 및 추론, 체크 포인트 등에 대한 모듈화되고 확장 가능한 구성 요소가 있습니다. 이것은 알파 릴리스입니다. 우리는 모든 종류의 피드백이나 기여에 감사드립니다.
SEQ2SEQ는 새로운 기술과 아키텍처가 자주 출판되는 빠르게 진화하는 분야입니다. 이 라이브러리의 목표는 그러한 기술과 응용 프로그램의 개발을 촉진하는 것입니다. 코드 및 문서의 품질을 지속적으로 개선하면서 다음 항목에 중점을 둘 것입니다.
이 패키지에는 Python 2.7 또는 3.6이 필요합니다. 이 프로젝트에 대한 새로운 가상 환경을 만드는 것이 좋습니다 (VirtualEnV 또는 Conda 사용).
pip install numpy (Numpy 설치 문제는 여기를 참조하십시오).현재 SetUptools를 사용하여 소스 코드에서만 설치를 지원합니다. 소스 코드를 확인하고 다음 명령을 실행하십시오.
pip install -r requirements.txt
python setup.py install
시스템에 이미 Pytorch 버전이 설치되어 있다면 Active 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
Tesla K80에서는 CPU에서 훈련하는 데 약 3 분이 걸리고 1 분 미만입니다. 훈련이 완료되면 번역 할 새로운 시퀀스를 입력하라는 메시지가 표시되며 모델은 예측을 인쇄합니다 (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에서 문제를여십시오. 라이브 토론은 Gitter 로비로 가십시오.
우리는 모든 종류의 피드백이나 기여에 감사드립니다. 버그 수정, 문서 개선과 같은 작은 문제를 자유롭게 진행하십시오. 주요 기여 및 새로운 기능은 해당 문제로 협력자와 토론하십시오.
우리는 4 주 릴리스주기를 사용하고 있으며, 각 사이클 동안 각 사이클 변화가 develop 분기로 밀려 나고 마침내 각 사이클이 끝날 때 master 브랜치로 병합됩니다.
Vagrant를 사용하여 개발 환경을 설정합니다. 시작하려면 'vagrantfile'으로 vagrant up 하십시오.
다음 도구가 기본적으로 개발 환경에 필요하고 설치됩니다.
프로젝트의 품질과 유지 가능성은 포괄적 인 테스트로 보장됩니다. 새로운 코드를 기여할 때 단위 테스트 및 통합 테스트를 작성하는 것이 좋습니다.
로컬로 패키지 루트 디렉토리에서 nosetests 실행하여 단위 테스트를 실행하십시오. 당사는 Travisci를 사용하여 풀 요청이 병합 될 자격이있는 모든 단위 테스트를 통과해야합니다. 자세한 내용은 Travis 구성을 참조하십시오.
우리는 코드 스타일을 위해 PEP8을 따릅니다. 특히 문서화 스타일은 문서를 생성하는 데 중요합니다.
# 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