บ้าน การเงินส่วนบุคคล การทำงานใน 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

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

ใช้สำเนียงกระดาษในการจัดเตรียมอาหารและการถ่ายภาพอาหาร - มัดหนังสือ

ใช้สำเนียงกระดาษในการจัดเตรียมอาหารและการถ่ายภาพอาหาร - มัดหนังสือ

สำเนียงกระดาษเช่นอุปกรณ์และของตกแต่งอื่น ๆ สามารถนำเสนออาหารได้อย่างดีสำหรับกล้องในรูปแบบอาหารและภาพถ่ายอาหารของคุณ เอกสารที่ละเอียดอ่อนเหล่านี้อาจเป็นสำเนียงเล็ก ๆ น้อย ๆ ที่สมบูรณ์แบบสำหรับการตั้งค่าการถ่ายภาพธรรมดาและบางครั้งก็น่าเบื่อ ถ้าใช้แบบดั้งเดิมตุ๊กตาหมุดก็ไม่ใช่ของคุณหรือถ้าคุณกำลังมองหาบางสิ่งบางอย่าง ...

ใช้ขาตั้งกล้องเพื่อลดการสั่นของกล้อง - มัมมี่

ใช้ขาตั้งกล้องเพื่อลดการสั่นของกล้อง - มัมมี่

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

การใช้ภาพถ่ายและผ้าลินินเพื่อจัดเตรียมอาหารและการถ่ายภาพอาหาร - มัมมี่

การใช้ภาพถ่ายและผ้าลินินเพื่อจัดเตรียมอาหารและการถ่ายภาพอาหาร - มัมมี่

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

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

การเพิ่มข้อมูลลงในภาพเดียวบน Canon EOS 6D ของคุณ - หุ่น

การเพิ่มข้อมูลลงในภาพเดียวบน Canon EOS 6D ของคุณ - หุ่น

ข้อมูลเมตามีประสิทธิภาพมาก เมื่อคุณเพิ่มข้อมูลเมตาลงในรูปภาพใน EOS 6D จะหาได้ง่ายขึ้น ข้อมูลนี้สามารถใช้งานได้หากคุณตัดสินใจแยกสาขาออกและพยายามขายรูปภาพบางส่วนในหน่วยงานภาพสต็อก ข้อมูลเมตายิ่งมีมากเท่าไหร่ก็ยิ่งหาได้ง่ายกว่า ...

การปรับช่องมองภาพบนกล้อง Canon EOS 70D - Dummies

การปรับช่องมองภาพบนกล้อง Canon EOS 70D - Dummies

ใน Canon EOS 70D, ใกล้ด้านขวาบนของสายยางที่ล้อมรอบช่องมองภาพเป็นปุ่มหมุน (ดูรูปต่อไปนี้) ที่ช่วยให้คุณปรับโฟกัสของช่องมองภาพให้ตรงกับสายตาของคุณ ปุ่มหมุนนี้เป็นที่รู้จักอย่างเป็นทางการว่าเป็นตัวควบคุมการปรับสายตา หากไม่ใช้ขั้นตอนนี้ฉากที่ปรากฏ ...

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

สิ่งที่ควรค้นหาในซอฟต์แวร์การถ่ายภาพ HDR - ดัมมี่

สิ่งที่ควรค้นหาในซอฟต์แวร์การถ่ายภาพ HDR - ดัมมี่

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

เมื่อต้องการแปลง HDR เป็นขาวดำ - ม้วน

เมื่อต้องการแปลง HDR เป็นขาวดำ - ม้วน

หนึ่งตัวเลือกเพื่อสร้างสีดำและสีขาวสูง ภาพช่วงไดนามิก (HDR) คือการแปลงภาพถ่ายสีของคุณให้เป็นขาวดำก่อนใช้ภาพเหล่านี้เพื่อสร้างภาพ HDR คุณมีสองตัวเลือกเพื่อเลือกว่านี่คือทิศทางที่คุณต้องการหรือไม่: แปลงระหว่าง Conversion ดิบ แปลงระหว่างการทำแผนที่โทน หากเลือก ...

สิ่งที่ควรนำมาสู่การถ่ายภาพอาหารนอกสถานที่ - มัมมี่

สิ่งที่ควรนำมาสู่การถ่ายภาพอาหารนอกสถานที่ - มัมมี่

รายการตรวจสอบคือ เพียงวิธีเดียวในการจดจำทุกอย่างที่คุณต้องการสำหรับการถ่ายภาพอาหารนอกสถานที่ขนาดใหญ่ เมื่อเขียนรายการตรวจสอบลองพิจารณาด้านต่างๆของการถ่ายทำที่กำลังจะเกิดขึ้น รายการที่ครอบคลุมมากขึ้นดีกว่า จดจำพื้นฐานสำหรับการจัดเตรียมอาหารและการถ่ายภาพอย่าลืมข้อมูลเบื้องต้นเกี่ยวกับชุดของคุณ ...