Trang Chủ Tài chính Cá nhân Chạy trong Parallel Python cho Khoa học Dữ liệu - những con vú

Chạy trong Parallel Python cho Khoa học Dữ liệu - những con vú

Mục lục:

Video: Vectors, what even are they? | Essence of linear algebra, chapter 1 2025

Video: Vectors, what even are they? | Essence of linear algebra, chapter 1 2025
Anonim

Hầu hết các máy tính ngày nay là đa lõi (hai hoặc nhiều bộ vi xử lý trong một gói), một số với nhiều CPU vật lý. Một trong những hạn chế quan trọng nhất của Python là nó sử dụng một lõi đơn theo mặc định. (Nó được tạo ra trong một thời điểm khi các lõi đơn là chuẩn).

Các dự án khoa học dữ liệu đòi hỏi khá nhiều tính toán. Đặc biệt, một phần của khía cạnh khoa học của khoa học dữ liệu dựa vào các thử nghiệm và thử nghiệm lặp lại trên các ma trận dữ liệu khác nhau. Đừng quên rằng làm việc với lượng dữ liệu khổng lồ có nghĩa là hầu hết các biến đổi tốn nhiều thời gian lặp lại quan sát sau khi quan sát (ví dụ, các thao tác giống nhau và không liên quan đến các phần khác nhau của ma trận).

Sử dụng nhiều lõi CPU tăng tốc tính toán bằng một yếu tố gần như phù hợp với số lõi. Ví dụ, có bốn lõi sẽ có nghĩa là làm việc tốt nhất bốn lần nhanh hơn. Bạn không nhận được tăng gấp bốn lần vì có quá phí khi bắt đầu quá trình song song - các trường hợp chạy Python mới phải được thiết lập với đúng thông tin trong bộ nhớ và được khởi chạy; do đó, cải thiện sẽ ít hơn tiềm năng có thể đạt được nhưng vẫn còn đáng kể.

Biết cách sử dụng nhiều hơn một CPU là một kỹ năng tiên tiến nhưng vô cùng hữu ích để tăng số lượng các phân tích đã hoàn thành và tăng tốc hoạt động của bạn khi thiết lập và khi sử dụng các sản phẩm dữ liệu của bạn.

Đa xử lý bằng cách lặp lại cùng một mã và bộ nhớ trong các phiên bản Python khác nhau (các nhân viên), tính kết quả cho mỗi người trong số họ, và trả về kết quả gộp lại cho giao diện điều khiển ban đầu chính. Nếu cá thể ban đầu của bạn đã chiếm nhiều bộ nhớ RAM có sẵn, sẽ không thể tạo ra các trường hợp mới, và máy tính của bạn sẽ hết bộ nhớ.

Cross-validating:

Kiểm tra kết quả của một giả thuyết máy học sử dụng các dữ liệu huấn luyện và thử nghiệm khác nhau

  • Tìm kiếm lưới: Thay đổi các thông số siêu động một cách có hệ thống của một giả thuyết máy học và thử nghiệm các kết quả kết quả

  • Dự đoán đa lớp: Chạy một thuật toán nhiều lần đối với nhiều mục tiêu khi có nhiều kết quả mục tiêu khác nhau để dự đoán cùng lúc

  • Ensemble máy học tập phương pháp: Mô hình hóa một số lượng lớn các nhà phân loại, mỗi một loại độc lập với nhau, chẳng hạn như khi sử dụng mô hình dựa trên RandomForest

  • Bạn không phải làm gì đặc biệt để tận dụng tính toán song song - bạn có thể kích hoạt tính song song bằng cách thiết lập n_jobs-tham số cho một số lõi nhiều hơn 1 hoặc bằng cách đặt giá trị là -1, có nghĩa là bạn muốn sử dụng tất cả các thể hiện CPU có sẵn. Nếu bạn không chạy mã từ bảng điều khiển hoặc từ Máy tính xách tay IPython, điều cực kỳ quan trọng là bạn phải tách mã của mình khỏi bất kỳ gói nhập khẩu hoặc phân bổ biến toàn cầu nào trong kịch bản của bạn bằng cách sử dụng if __name __ == '__ main__': lệnh ở đầu bất kỳ mã nào thực hiện song song đa lõi. Câu lệnh if kiểm tra xem chương trình có chạy trực tiếp hay được gọi bởi một giao diện điều khiển Python đang chạy, để tránh sự nhầm lẫn hay lỗi của quá trình đa nhân (như đệ quy gọi nó là song song).

Chứng minh quá trình đa xử lý

Bạn nên sử dụng IPython khi bạn chạy một cuộc biểu tình về cách tính đa năng có thể thực sự tiết kiệm thời gian cho bạn trong các dự án khoa học dữ liệu. Sử dụng IPython cung cấp lợi thế của việc sử dụng lệnh ma thuật% timeit để thực thi thời gian. Bạn bắt đầu bằng cách tải một tập hợp dữ liệu đa lớp, một thuật toán học máy phức tạp (Hỗ trợ Phân loại Vừa, hoặc SVC) và một thủ tục xác nhận chéo để ước lượng kết quả đáng tin cậy từ tất cả các thủ tục.

Điều quan trọng nhất cần biết là các quy trình trở nên khá lớn vì SVC tạo ra 10 mô hình, nó lặp đi lặp lại 10 lần mỗi lần sử dụng tính hợp lệ chéo, cho tổng số 100 mô hình.

từ người lùn. bộ dữ liệu nhập khẩu load_digits chữ số = load_digits () X, y = chữ số. dữ liệu, chữ số. nhắm mục tiêu từ sklearn. svm nhập khẩu SVC từ sklearn. cross_validation nhập khẩu cross_val_score% timeit single_core_learning = cross_val_score (SVC (), X, y, cv = 20, n_jobs = 1) Out [1]: 1 vòng lặp, tốt nhất của 3: 17. 9 s mỗi vòng

Sau khi kiểm tra này, bạn cần phải kích hoạt song song đa lõi và thời gian kết quả sử dụng các lệnh sau:

% timeit multi_core_learning = cross_val_score (SVC (), X, y, cv = 20, n_jobs = -1) Out [2]: 1 vòng, tốt nhất của 3: 11. 7 giây cho mỗi vòng lặp

Ví dụ máy minh họa lợi thế tích cực bằng cách sử dụng chế biến đa lõi, mặc dù sử dụng một bộ dữ liệu nhỏ mà Python dành phần lớn thời gian bắt đầu bàn giao tiếp và chạy một phần của mã trong mỗi một. Chi phí này, một vài giây, vẫn còn đáng kể do tổng số lần thực thi kéo dài trong một vài giây. Chỉ cần tưởng tượng điều gì sẽ xảy ra nếu bạn làm việc với bộ dữ liệu lớn hơn - thời gian thực hiện của bạn có thể dễ dàng bị cắt giảm bởi hai hoặc ba lần.

Mặc dù mã hoạt động tốt với IPython, đặt nó xuống trong một kịch bản và yêu cầu Python chạy nó trong một giao diện điều khiển hoặc sử dụng một IDE có thể gây ra lỗi vì các hoạt động nội bộ của một công việc đa lõi. Giải pháp là đặt tất cả các mã dưới một câu lệnh if, kiểm tra xem chương trình có bắt đầu trực tiếp và không được gọi sau đó. Dưới đây là một ví dụ kịch bản:

từ sklearn. số liệu nhập khẩu load_digits từ sklearn. svm nhập khẩu SVC từ sklearn. cross_validation nhập khẩu chéo_val_score nếu __name__ == '__main__': digits = load_digits () X, y = chữ số. dữ liệu, chữ số. target multi_core_learning = cross_val_score (SVC (), X, y, cv = 20, n_jobs = -1)

Chạy trong Parallel Python cho Khoa học Dữ liệu - những con vú

Lựa chọn của người biên tập

Web Marketing: Loại bỏ đăng ký và đăng nhập để đảm bảo khả năng hiển thị - núm vú

Web Marketing: Loại bỏ đăng ký và đăng nhập để đảm bảo khả năng hiển thị - núm vú

Tiếp thị web, một cách để đảm bảo khả năng hiển thị là để loại bỏ đăng ký và các hình thức đăng nhập. Khách truy cập thường phải hoàn thành các biểu mẫu này trước khi họ có thể tải xuống một số loại nội dung cao cấp, chẳng hạn như giấy trắng hoặc trước khi họ có thể đọc một số bài viết trên trang web. Các công ty đã đưa chúng vào vị trí vì họ muốn dẫn ...

Web Marketing: Làm thế nào để Tránh Duplicate Content - núm vú

Web Marketing: Làm thế nào để Tránh Duplicate Content - núm vú

Duplicate nội dung cần tránh trong web tiếp thị và Google cung cấp công cụ để phát hiện thông tin lặp lại. Không có gì gây tổn hại cho việc tìm kiếm nội dung có liên quan của công cụ tìm kiếm cũng như tìm ra chính xác những từ giống nhau trên hai trang khác nhau. Sao chép là xấu vì những lý do này: Sao chép được sử dụng để được một chiến thuật được sử dụng để đánh lừa ...

Web Marketing: Làm thế nào để Deal với Broken Links - núm vú

Web Marketing: Làm thế nào để Deal với Broken Links - núm vú

Trong bài hát của họ. Là một nhà tiếp thị web, việc xử lý các liên kết hỏng này có thể giúp đảm bảo sự thành công của trang web của bạn. Nếu một công cụ tìm kiếm đạt đến một liên kết bị hỏng, nó không thể tìm thấy trang bạn dự định (rõ ràng) - nhưng nó cũng có thể bỏ trên trang web của bạn hoặc giảm sự liên quan ...

Lựa chọn của người biên tập

Các kiểu dữ liệu điểm nổi trong Java - núm vú

Các kiểu dữ liệu điểm nổi trong Java - núm vú

Số dấu phẩy động là số có các phần phân đoạn (thường được thể hiện bằng dấu thập phân). Bạn nên sử dụng một kiểu điểm nổi trong các chương trình Java bất cứ khi nào bạn cần một số có số thập phân, như là 19. 95 hoặc 3. 1415. Java có hai kiểu nguyên thủy cho các số dấu phẩy: float: Sử dụng 4 byte gấp đôi: Sử dụng 8 bytes Trong hầu hết tất cả ...

Tải phiên bản mới nhất của Java - núm vú

Tải phiên bản mới nhất của Java - núm vú

Trước khi bạn có thể viết các chương trình Java cho các thiết bị Android, bạn cần một số phần mềm công cụ, bao gồm cả phiên bản mới nhất của Java. Bạn có thể có được phiên bản Java mới nhất và lớn nhất bằng cách truy cập vào trang web Java. Trang web cung cấp một số lựa chọn thay thế. (Được giới thiệu) Nhấp chuột vào nút Free Java Download trên trang chính của trang web. Đối với hầu hết các máy tính, ...

Thử nghiệm với JShell - núm vú

Thử nghiệm với JShell - núm vú

JShell là một công cụ Java 9 cho phép bạn khám phá về lập trình. JShell làm cho nó dễ dàng để chơi xung quanh mà không sợ hậu quả thảm khốc. Các chương trình Java thường sử dụng cùng kiểu cũ, lúng túng: public class SomethingOrOther {public static void main (String args []) {Một chương trình Java đòi hỏi sự giới thiệu này bởi vì trong Java ...

Lựa chọn của người biên tập

Hẹn hò Sau 50: Tâm linh và Tôn giáo - những con voi

Hẹn hò Sau 50: Tâm linh và Tôn giáo - những con voi

Bản quyền © 2014 AARP Tất cả các quyền được bảo lưu. Tâm linh và tôn giáo, tình dục, những trò vui nhộn nhịp, sự tham gia của gia đình, lối sống và tiền bạc - tất cả những điều này thường quan trọng đối với những người trên 50 tuổi, nhưng bạn có thể đặt một số cao hơn những người khác. Trong bất kỳ trường hợp nào, điều quan trọng là phải suy nghĩ về họ trước để bạn có thể thảo luận ...

Hẹn hò Sau 50: Nói về Monogami - vú

Hẹn hò Sau 50: Nói về Monogami - vú

Bản quyền © 2014 AARP. Đã đăng ký Bản quyền. Một vợ một chồng là một vấn đề lớn cho dù bạn là người chưa sẵn sàng cho vợ chồng một vợ chồng và muốn hẹn hò xung quanh hay người chỉ có thể quan hệ tình dục với một người một lần. Đảm bảo đối tác hẹn hò của bạn biết bạn đang đứng ở đâu (hoặc nằm xuống) đối với vợ chồng một vợ chồng ...

Hẹn hò Sau 50: Thảo luận về sức khoẻ cá nhân của bạn - những con voi

Hẹn hò Sau 50: Thảo luận về sức khoẻ cá nhân của bạn - những con voi

Bản quyền © 2014 AARP. Đã đăng ký Bản quyền. Nếu bạn bị bệnh mãn tính hoặc đe dọa đến mạng sống khi bạn còn nhỏ, bạn đã có kinh nghiệm về sức khoẻ của mình. Có thể bạn phải liên tục kể câu chuyện về vết sẹo ngực hoặc nẹp chân hoặc giải thích số ít các viên thuốc mà bạn phải dùng mỗi ngày. Nó không phải ...