เอกสาร
นี่คือกรอบสำหรับโมเดลลำดับต่อลำดับ (SEQ2SEQ) ที่ใช้ใน Pytorch เฟรมเวิร์กมีส่วนประกอบแบบแยกส่วนและขยายได้สำหรับรุ่น SEQ2SEQ การฝึกอบรมและการอนุมานจุดตรวจ ฯลฯ นี่คือการเปิดตัวอัลฟ่า เราขอขอบคุณข้อเสนอแนะหรือการมีส่วนร่วมใด ๆ
SEQ2SEQ เป็นสนามที่พัฒนาอย่างรวดเร็วด้วยเทคนิคและสถาปัตยกรรมใหม่ที่เผยแพร่บ่อยครั้ง เป้าหมายของห้องสมุดนี้คือการอำนวยความสะดวกในการพัฒนาเทคนิคและแอพพลิเคชั่นดังกล่าว ในขณะที่ปรับปรุงคุณภาพของรหัสและเอกสารอย่างต่อเนื่องเราจะมุ่งเน้นไปที่รายการต่อไปนี้:
แพ็คเกจนี้ต้องใช้ Python 2.7 หรือ 3.6 เราขอแนะนำให้สร้างสภาพแวดล้อมเสมือนจริงใหม่สำหรับโครงการนี้ (โดยใช้ VirtualEnv หรือ Conda)
pip install numpy (อ้างอิงที่นี่สำหรับปัญหาการติดตั้ง numpy)ขณะนี้เรารองรับการติดตั้งจากซอร์สโค้ดโดยใช้ setuptools เท่านั้น ชำระเงินซอร์สโค้ดและเรียกใช้คำสั่งต่อไปนี้:
pip install -r requirements.txt
python setup.py install
หากคุณติดตั้ง Pytorch เวอร์ชันอยู่แล้วในระบบของคุณโปรดตรวจสอบว่าแพ็คเกจคบเพลิงที่ใช้งานอยู่อย่างน้อยเวอร์ชัน 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
จะใช้เวลาประมาณ 3 นาทีในการฝึกซ้อม CPU และน้อยกว่า 1 นาทีด้วย Tesla K80 เมื่อการฝึกอบรมเสร็จสมบูรณ์คุณจะได้รับแจ้งให้ป้อนลำดับใหม่เพื่อแปลและโมเดลจะพิมพ์คำทำนาย (ใช้ 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 เรียก vagrant up ด้วย 'Vagrantfile' ของเราเพื่อเริ่มต้น
จำเป็นต้องใช้เครื่องมือต่อไปนี้และติดตั้งในสภาพแวดล้อมการพัฒนาโดยค่าเริ่มต้น:
คุณภาพและความสามารถในการบำรุงรักษาของโครงการได้รับการทดสอบที่ครอบคลุม เราสนับสนุนให้การทดสอบหน่วยการเขียนและการทดสอบการรวมเมื่อสนับสนุนรหัสใหม่
ในพื้นที่โปรดเรียกใช้ 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