ドキュメント
これは、Pytorchで実装されたシーケンスからシーケンス(Seq2Seq)モデルのフレームワークです。フレームワークには、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
CPUでのトレーニングには約3分かかり、テスラK80で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 Lobbyにアクセスしてください。
あらゆる種類のフィードバックや貢献に感謝します。バグ修正、ドキュメントの改善などの小さな問題を自由に進めてください。主要な貢献と新機能については、対応する問題について協力者と話し合ってください。
4週間のリリースサイクルを使用しています。各サイクル中に変更がdevelopブランチに押し込まれ、最終的に各サイクルの終わりにmasterブランチに合流します。
Vagrantを使用して開発環境をセットアップします。 「VagrantFile」でvagrant up実行して開始します。
次のツールが必要であり、デフォルトで開発環境にインストールされています。
プロジェクトの品質と保守性は、包括的なテストによって保証されます。新しいコードを寄付する際に、単体テストと統合テストの作成をお勧めします。
ローカルでは、パッケージルートディレクトリでnosetestsを実行して、ユニットテストを実行してください。 Travisciを使用して、プルリクエストがすべてのユニットテストに合格して、マージする資格があることを要求します。詳細については、Travis Configurationを参照してください。
コードスタイルについては、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