Dokumentasi
Ini adalah kerangka kerja untuk model urutan-ke-urutan (SEQ2SEQ) yang diimplementasikan dalam Pytorch. Kerangka kerja ini memiliki komponen yang dimodulasi dan dapat diperluas untuk model SEQ2SEQ, pelatihan dan inferensi, pos pemeriksaan, dll. Ini adalah rilis alpha. Kami menghargai segala jenis umpan balik atau kontribusi.
SEQ2SEQ adalah bidang yang berkembang cepat dengan teknik dan arsitektur baru yang sering diterbitkan. Tujuan perpustakaan ini adalah memfasilitasi pengembangan teknik dan aplikasi tersebut. Sementara terus meningkatkan kualitas kode dan dokumentasi, kami akan fokus pada item berikut:
Paket ini membutuhkan Python 2.7 atau 3.6. Kami merekomendasikan membuat lingkungan virtual baru untuk proyek ini (menggunakan VirtualEnv atau Conda).
pip install numpy (lihat di sini untuk masalah menginstal Numpy).Saat ini kami hanya mendukung instalasi dari kode sumber menggunakan setuptools. Periksa kode sumber dan jalankan perintah berikut:
pip install -r requirements.txt
python setup.py install
Jika Anda sudah memiliki versi Pytorch yang diinstal pada sistem Anda, harap verifikasi bahwa paket obor aktif setidaknya versi 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
Butuh sekitar 3 menit untuk berlatih di CPU dan kurang dari 1 menit dengan Tesla K80. Setelah pelatihan selesai, Anda akan diminta untuk memasukkan urutan baru untuk diterjemahkan dan model akan mencetak prediksinya (gunakan Ctrl-C untuk mengakhiri). Coba contoh di bawah ini!
Input: 1 3 5 7 9
Expected output: 9 7 5 3 1 EOS
Pos pemeriksaan disusun oleh percobaan dan cap waktu seperti yang ditunjukkan pada struktur file berikut
experiment_dir
+-- input_vocab
+-- output_vocab
+-- checkpoints
| +-- YYYY_mm_dd_HH_MM_SS
| +-- decoder
| +-- encoder
| +-- model_checkpoint
Skrip sampel secara default menyimpan pos pemeriksaan di folder experiment direktori root. Lihatlah penggunaan kode sampel untuk lebih banyak opsi, termasuk melanjutkan dan memuat dari pos pemeriksaan.
Jika Anda memiliki pertanyaan, laporan bug, dan permintaan fitur, silakan buka masalah di GitHub. Untuk diskusi langsung, silakan pergi ke lobi Gitter kami.
Kami menghargai segala jenis umpan balik atau kontribusi. Jangan ragu untuk melanjutkan dengan masalah kecil seperti perbaikan bug, peningkatan dokumentasi. Untuk kontribusi besar dan fitur baru, silakan diskusikan dengan kolaborator dalam masalah yang sesuai.
Kami menggunakan siklus pelepasan 4 minggu, di mana selama setiap siklus perubahan akan didorong ke cabang develop dan akhirnya bergabung ke cabang master di akhir setiap siklus.
Kami mengatur lingkungan pengembangan menggunakan Vagrant. Jalankan vagrant up dengan 'Vagrantfile' kami untuk memulai.
Alat berikut diperlukan dan dipasang di lingkungan pengembangan secara default:
Kualitas dan pemeliharaan proyek dipastikan dengan tes komprehensif. Kami mendorong tes unit penulisan dan tes integrasi saat berkontribusi kode baru.
Secara lokal silakan jalankan nosetests di direktori root paket untuk menjalankan tes unit. Kami menggunakan Travisi untuk meminta agar permintaan tarik harus lulus semua tes unit agar memenuhi syarat untuk bergabung. Lihat Konfigurasi Travis untuk informasi lebih lanjut.
Kami mengikuti PEP8 untuk gaya kode. Terutama gaya Docstrings penting untuk menghasilkan dokumentasi.
# 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