บ้าน การเงินส่วนบุคคล การทำงานใน Python แบบขนานสำหรับวิทยาศาสตร์ข้อมูล - Dummies

การทำงานใน Python แบบขนานสำหรับวิทยาศาสตร์ข้อมูล - Dummies

สารบัญ:

วีดีโอ: สอนไพธอน Python 3: การ run โปรแกรมผ่านทาง command line/terminal 2024

วีดีโอ: สอนไพธอน Python 3: การ run โปรแกรมผ่านทาง command line/terminal 2024
Anonim

คอมพิวเตอร์ส่วนใหญ่เป็น multicore (โปรเซสเซอร์สองตัวขึ้นไปในชุดเดียว) บางรุ่น มี CPU หลายตัว หนึ่งในข้อ จำกัด ที่สำคัญที่สุดของ Python คือใช้ single core ตามค่าดีฟอลต์ (ถูกสร้างขึ้นในช่วงเวลาที่แกนเดี่ยวเป็นบรรทัดฐาน)

โครงการวิทยาศาสตร์ข้อมูลต้องใช้การคำนวณเป็นจำนวนมาก โดยเฉพาะอย่างยิ่งส่วนหนึ่งของด้านวิทยาศาสตร์ของข้อมูลวิทยาศาสตร์อาศัยการทดสอบซ้ำ ๆ และการทดลองในเมทริกซ์ข้อมูลต่างๆ อย่าลืมว่าการทำงานกับข้อมูลปริมาณมากหมายความว่าการแปลงที่ใช้เวลานานที่สุดจะสังเกตซ้ำหลังจากการสังเกต (ตัวอย่างเช่นการดำเนินงานที่เหมือนกันและไม่เกี่ยวข้องกับส่วนต่างๆของเมทริกซ์)

การใช้แกน CPU มากขึ้นจะช่วยเร่งการคำนวณโดยปัจจัยที่เกือบจะตรงกับจำนวนแกน ตัวอย่างเช่นการมีสี่แกนจะหมายถึงการทำงานที่ดีที่สุดสี่ครั้งเร็วขึ้น คุณไม่ได้รับการเพิ่มขึ้นสี่เท่าเนื่องจากมีค่าใช้จ่ายเมื่อเริ่มต้นกระบวนการแบบขนาน - อินสแตนซ์ Python ใหม่ที่ใช้งานจะต้องมีการตั้งค่าข้อมูลหน่วยความจำในตัวและเปิดตัวแล้ว ดังนั้นการปรับปรุงจะน้อยกว่าความเป็นไปได้ที่อาจทำได้ แต่ยังคงมีนัยสำคัญ

การประมวลผลหลายชุดจะทำงานโดยการจำลองรหัสและเนื้อหาหน่วยความจำในอินสแตนซ์ Python ใหม่ ๆ (คนงาน) โดยคำนวณผลลัพธ์สำหรับแต่ละไฟล์และส่งคืนผลลัพธ์ที่รวมไว้ในคอนโซลหลัก หากอินสแตนซ์เดิมของคุณใช้พื้นที่หน่วยความจำแรมอยู่มากเท่าไรก็จะไม่สามารถสร้างอินสแตนซ์ใหม่ได้และเครื่องของคุณอาจไม่มีหน่วยความจำอยู่

การตรวจสอบข้าม:

การทดสอบผลลัพธ์ของสมมติฐานการเรียนรู้ด้วยเครื่องจักรโดยใช้ข้อมูลการฝึกอบรมและการทดสอบที่แตกต่างกัน

การค้นหาตาราง:

  • การเปลี่ยนพารามิเตอร์แบบ hyper อย่างเป็นระบบ ของสมมติฐานการเรียนรู้เกี่ยวกับเครื่องจักรและการทดสอบผลลัพธ์ที่เป็นผลลัพธ์ การคาดการณ์หลายชั้น:

  • การเรียกใช้อัลกอริทึมหลายครั้งเมื่อเทียบกับเป้าหมายหลายรายการเมื่อมีหลายเป้าหมายที่แตกต่างกันไปเพื่อทำนายในเวลาเดียวกัน Ensemble machine-learning methods:

  • การสร้างโมเดลโฮสต์ขนาดใหญ่ที่แยกแต่ละประเภทออกจากกันเช่นเมื่อใช้โมเดลแบบ RandomForest คุณไม่จำเป็นต้องทำอะไรเป็นพิเศษเพื่อใช้ประโยชน์จากการคำนวณแบบขนาน - คุณสามารถเปิดใช้งานการทำงานแบบขนานโดยการตั้งค่า พารามิเตอร์ n_jobs เป็นจำนวนแกนมากกว่า 1 หรือโดยการตั้งค่าเป็น -1 ซึ่งหมายความว่าคุณต้องการใช้อินสแตนซ์ของ CPU ทั้งหมดที่พร้อมใช้งาน

  • ถ้าคุณไม่ได้ใช้รหัสของคุณจากคอนโซลหรือจากโน้ตบุ๊ค IPython เป็นสิ่งสำคัญอย่างยิ่งที่คุณต้องแยกรหัสของคุณจากการนำเข้าแพคเกจหรือการกำหนดตัวแปรทั่วโลกในสคริปต์โดยใช้ __name __ == '__ main__': คำสั่งที่จุดเริ่มต้นของโค้ดที่รันการทำงานแบบขนานหลายตัว ถ้าคำสั่งตรวจสอบว่าโปรแกรมรันโดยตรงหรือเรียกโดยคอนโซล Python ที่ใช้อยู่แล้วหลีกเลี่ยงความสับสนหรือข้อผิดพลาดตามกระบวนการแบบหลายขั้นตอน (เช่นเรียกซ้ำแบบขนาน) การแสดงหลายรูปแบบ

ควรใช้ IPython เมื่อคุณเรียกใช้การสาธิตวิธีการประมวลผลหลายเครื่องสามารถประหยัดเวลาได้มากในระหว่างโครงการวิทยาศาสตร์ข้อมูล การใช้ IPython ให้ประโยชน์ในการใช้คำสั่งเวทมนตร์% timeit สำหรับการรันไทม์มิก คุณเริ่มต้นด้วยการโหลดชุดข้อมูลมัลติเคลระบบอัลกอริธึมการเรียนรู้เครื่องจักรที่ซับซ้อน (Support Vector Classifier หรือ SVC) และขั้นตอนการตรวจสอบข้ามเพื่อประเมินคะแนนที่เชื่อถือได้จากขั้นตอนทั้งหมด

สิ่งที่สำคัญที่สุดที่ต้องรู้ก็คือขั้นตอนการทำงานมีขนาดค่อนข้างใหญ่เนื่องจาก SVC ผลิต 10 โมเดลซึ่งทำซ้ำ 10 ครั้งโดยใช้การตรวจสอบข้ามชุดสำหรับรุ่น 100 ตัว

จากขนแกะ ชุดข้อมูลนำเข้า load_digits digits = load_digits () X, y = ตัวเลข ข้อมูลตัวเลข เป้าหมายจาก Sklearn svm นำเข้า SVC จาก sklearn ข้ามไปที่: 1 ลูป, ดีที่สุด 3: 17 9 วินาทีต่อห่วง

หลังจากการทดสอบนี้, คุณต้องเปิดใช้งานการทำงานแบบขนานมัลติคอร์และใช้เวลาในการผลลัพธ์โดยใช้คำสั่งต่อไปนี้:

% timeit multi_core_learning = cross_val_score (SVC (), X, y, cv = 20, n_jobs = -1) Out [2]: 1 loops, ตัวอย่างเช่นเครื่องแสดงให้เห็นถึงข้อได้เปรียบเชิงบวกโดยใช้การประมวลผลแบบหลายตัวแปรแม้ว่าจะใช้ชุดข้อมูลขนาดเล็กที่ Python ใช้เวลาส่วนใหญ่ในการเริ่มต้นคอนโซลและเรียกใช้ส่วนหนึ่งของโค้ดในแต่ละเครื่อง ค่าใช้จ่ายนี้ไม่กี่วินาทียังคงเป็นนัยสำคัญที่การดำเนินการทั้งหมดจะใช้งานได้ไม่กี่วินาที ลองจินตนาการว่าจะเกิดอะไรขึ้นถ้าคุณทำงานกับชุดข้อมูลขนาดใหญ่ขึ้น - เวลาในการดำเนินการของคุณสามารถตัดออกได้สองหรือสามครั้ง

แม้ว่าโค้ดจะทำงานได้ดีกับ IPython แต่ให้วางสคริปต์ไว้ใน Python และขอให้ Python ทำงานในคอนโซลหรือใช้ IDE อาจทำให้เกิดข้อผิดพลาดเนื่องจากการดำเนินงานภายในของงาน multicore การแก้ปัญหาคือการใส่รหัสทั้งหมดภายใต้คำสั่ง if ซึ่งจะตรวจสอบว่าโปรแกรมเริ่มทำงานโดยตรงหรือไม่เรียกภายหลัง นี่คือตัวอย่างสคริปต์:

จากคนไร้สัญชาติ ชุดข้อมูลนำเข้า load_digits จาก sklearn svm นำเข้า SVC จาก sklearn cross_validation นำเข้า cross_val_score ถ้า __name__ == '__main__': หลัก = load_digits () X, y = ตัวเลข ข้อมูลตัวเลข เป้าหมาย multi_core_learning = cross_val_score (SVC (), X, y, cv = 20, n_jobs = -1)

การทำงานใน Python แบบขนานสำหรับวิทยาศาสตร์ข้อมูล - Dummies

ตัวเลือกของบรรณาธิการ

วิธีการลดทับภาพใน Photoshop Elements 11 - Dummies

วิธีการลดทับภาพใน Photoshop Elements 11 - Dummies

คุณสามารถเปลี่ยนขนาดและความละเอียดของภาพใน สองวิธีที่แตกต่างกันภายใน Photoshop Elements 11. วิธีการหนึ่งที่เกี่ยวข้องกับไดอะล็อกบ็อกซ์ Image Size ซึ่งคุณใช้ในการแก้ไขใน Elements หลาย ๆ เมื่อคุณใช้กล่องโต้ตอบขนาดภาพเพื่อลดขนาดภาพลงคุณจะสุ่มตัวอย่างภาพ ทำตาม ...

วิธีการวาดด้วย Photoshop Elements 11 Pencil Tool - Dummies

วิธีการวาดด้วย Photoshop Elements 11 Pencil Tool - Dummies

เครื่องมือดินสอและแปรงใน Photoshop Elements 11 คล้ายคลึงกันยกเว้นว่าเครื่องมือดินสอมีขอบแข็งในขณะที่เครื่องมือแปรงสามารถมีขอบขนนุ่ม ในความเป็นจริงขอบของจังหวะดินสอไม่สามารถแม้แต่จะต่อต้าน aliased -

การแก้ไขข้อความใน Photoshop Elements 11 - dummies

การแก้ไขข้อความใน Photoshop Elements 11 - dummies

คุณอาจต้องจัดเรียงคำใหม่หรือแก้ไขความผิดพลาดและ ข้อผิดพลาดอื่น ๆ ภายในข้อความที่คุณวางไว้ใน Photoshop Elements 11 ของคุณ หากต้องการเปลี่ยนแปลงข้อความเองเพียงทำตามขั้นตอนต่อไปนี้: เปิดภาพของคุณใน Photo Editor ในโหมด Expert เลือกเครื่องมือ Type จากแผง Tools ในเลเยอร์ ...

ตัวเลือกของบรรณาธิการ

การแนบและการถอดเลนส์สำหรับกล้อง Nikon D5200 ของคุณ - ความหนา

การแนบและการถอดเลนส์สำหรับกล้อง Nikon D5200 ของคุณ - ความหนา

ความแตกต่างระหว่าง กล้องดิจิตอลแบบจุดและจุดดิจิตอลและกล้อง DSLR (Digital Single-lens Reflex) (เช่น Nikon D5200) เป็นเลนส์ ด้วยกล้อง DSLR คุณสามารถเปลี่ยนเลนส์เพื่อให้เหมาะกับความต้องการด้านการถ่ายภาพที่แตกต่างกันไปได้เช่นเลนส์ซูมมากสุดไปจนถึงเลนส์ซูเปอร์ยาว ไม่ว่าเลนส์ที่คุณซื้อจะทำตามขั้นตอนต่อไปนี้ ...

วิธีการใช้เอฟเฟ็กต์พิเศษผ่านเมนูรีเมนูปรับแต่ง Nikon D7200 - หุ่น

วิธีการใช้เอฟเฟ็กต์พิเศษผ่านเมนูรีเมนูปรับแต่ง Nikon D7200 - หุ่น

เครื่องมือแก้ไขภาพเมนูรีทัชของ Nikon D7200 มีเครื่องมือพิเศษบางอย่าง ในการสร้างเอฟเฟ็กต์แบบหลังยิงให้ลองใช้ตัวเลือกเมนูรีทัชดังต่อไปนี้: หน้าจอครอสซิ่ง: เครื่องมือนี้จะเพิ่มเอฟเฟ็กต์การกระเจิงแสงให้กับส่วนที่สว่างที่สุดของภาพ เพื่อไปที่เครื่องมือนี้เลือกรีทัช> ผลการกรอง> ข้ามหน้าจอ คุณเห็น ...

การปรับการตั้งค่าวิดีโอใน Nikon D5500 ของคุณ - Dummies

การปรับการตั้งค่าวิดีโอใน Nikon D5500 ของคุณ - Dummies

เมื่อคุณพร้อมที่จะใช้งานมากขึ้น ควบคุมภาพยนตร์ของคุณได้โดยเริ่มจากการสำรวจการตั้งค่าวิดีโอ Nikon D5500 ของคุณช่วยให้คุณสามารถปรับการตั้งค่าเหล่านี้เพื่อจับภาพวิดีโอโดยไม่จำเป็นต้องสลับกล้องออก การเลือกโหมดวิดีโอ (NTSC หรือ PAL) ตัวเลือกแรกที่ต้องพิจารณาคือโหมดวิดีโอที่พบใน Setup men การตั้งค่านี้ ...

ตัวเลือกของบรรณาธิการ

การถ่ายภาพการตั้งค่าสำหรับกล้อง Canon EOS Rebel T3 Series - หน้าม้วน

การถ่ายภาพการตั้งค่าสำหรับกล้อง Canon EOS Rebel T3 Series - หน้าม้วน

หน้าจอการตั้งค่าการถ่ายภาพใน Canon กล้อง EOS Rebel T3 และกล้อง Canon EOS Rebel T3i จะแสดงการตั้งค่าถ่ายภาพที่สำคัญที่สุด ได้แก่ รูรับแสงความเร็วชัตเตอร์ ISO และอื่น ๆ โปรดทราบว่าจอแสดงผลมีความเกี่ยวข้องกับการถ่ายภาพนิ่งปกติเท่านั้น เมื่อคุณเปลี่ยนไปใช้โหมดดูภาพหรือโหมดภาพยนตร์ใน Rebel T3 ของคุณ

ถ่ายภาพบุคคลกับ Canon EOS Rebel T1i / 500D - ภาพขนาดใหญ่

ถ่ายภาพบุคคลกับ Canon EOS Rebel T1i / 500D - ภาพขนาดใหญ่

เรื่องที่เน้นอย่างรวดเร็วและพื้นหลังนุ่มเบลอ ปฏิบัติตามขั้นตอนต่อไปนี้เพื่อถ่ายรูปกับ Canon Digital Rebel ของคุณ