Cải thiện tốc độ thực hiện t-sne trong python cho dữ liệu khổng lồ


18

Tôi muốn thực hiện giảm kích thước trên gần 1 triệu vectơ mỗi chiều với 200 thứ nguyên ( doc2vec). Tôi đang sử dụng TSNEtriển khai từ sklearn.manifoldmô-đun cho nó và vấn đề chính là sự phức tạp về thời gian. Ngay cả với method = barnes_hut, tốc độ tính toán vẫn còn thấp. Đôi khi nó hết bộ nhớ.

Tôi đang chạy nó trên bộ xử lý 48 lõi với RAM 130G. Có một phương pháp để chạy nó song song hoặc sử dụng nguồn tài nguyên dồi dào để tăng tốc quá trình.


Bạn đã thử giảm bản đồ trong một khung như Spark chưa?
Dawny33

Không .. nó hoạt động như thế nào và bạn có thể vui lòng chỉ dẫn cho tôi ..
yazhi 6/2/2016

Vui lòng xem qua tài liệu của Spark để hiểu về nó :)
Dawny33

1
Xem nếu triển khai Spark này hoạt động.
Emre

1
Đó là Scala cho Spark. Nếu bạn muốn triển khai python, bạn có thể dịch nó; Spark cũng chạy trên trăn.
Emre

Câu trả lời:



7

Kiểm tra t-SNE dựa trên nội suy được tăng tốc FFT (gói giấy , gói Python ).

Từ tóm tắt:

Chúng tôi trình bày t-SNE dựa trên phép nội suy chuyển đổi nhanh Fourier (FIt-SNE), giúp tăng tốc đáng kể tính toán của t-SNE. Bước tốn nhiều thời gian nhất của t-SNE là một phép chập mà chúng ta tăng tốc bằng cách nội suy lên một lưới không thể thay đổi và sau đó sử dụng biến đổi Fourier nhanh để thực hiện phép chập. Chúng tôi cũng tối ưu hóa tính toán của các điểm tương đồng đầu vào ở kích thước cao bằng cách sử dụng các lân cận gần nhất đa luồng.

Bài viết cũng bao gồm một ví dụ về bộ dữ liệu có một triệu điểm và 100 thứ nguyên (tương tự như cài đặt của OP) và có vẻ mất khoảng 1 giờ.


5

Vì không có câu trả lời nào trong SO, tôi đã tự hỏi mình trong trang github và vấn đề đã được đóng lại bằng cách nêu câu trả lời sau của GaelVaroquaux ..

Nếu bạn chỉ muốn song song hoạt động vectơ, thì bạn nên sử dụng một bản dựng gọn gàng được biên dịch bằng MKL (đừng cố gắng tự làm, điều đó thật khó khăn).

Có thể có các cách tiếp cận đối với sự song song cấp cao trong chính thuật toán, điều này có thể sẽ dẫn đến lợi ích lớn hơn. Tuy nhiên, sau khi xem nhanh mã, tôi không thấy cách nào rõ ràng để làm điều đó.

Tôi sẽ tiếp tục và kết thúc vấn đề này, vì nó là một danh sách màu xanh da trời. Tôi hoàn toàn đồng ý, tôi muốn TSNE đi nhanh hơn, và thật tuyệt khi song song là dễ dàng. Nhưng trong tình trạng hiện tại, cần nhiều công việc hơn để ở trong trạng thái mà chúng ta có thể giải quyết danh sách mong muốn đó.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.