文件
這是Pytorch中實現的序列到序列(SEQ2SEQ)模型的框架。該框架具有SEQ2SEQ模型,訓練和推理,檢查點等的模塊化和可擴展的組件。這是Alpha釋放。感謝任何形式的反饋或貢獻。
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分鐘的時間。培訓完成後,將提示您輸入一個新序列進行翻譯,該模型將打印出其預測(使用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以獲取代碼樣式。特別是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