文档
这是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