cuốn sách gpt4 ai đã làm

android — Thống kê về mảng có nhiều mảng (HDF5) khổng lồ

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 13:03:24 26 4
mua khóa gpt4 Nike

Tôi có một mảng 4D khá lớn [20x20x40x15000] và tôi sử dụng h5py Lưu nó vào đĩa dưới dạng tệp HDF5. Bây giờ vấn đề là tôi muốn tính giá trị trung bình của toàn bộ mảng, tức là sử dụng:

numpy.average(HDF5_file)

tôi có một cáiLỗi bộ nhớ. Có vẻ như Numpy cố tải tệp HDF5 vào bộ nhớ để thực hiện tính trung bình?

Có ai có giải pháp thanh lịch và hiệu quả cho vấn đề này không?

câu trả lời hay nhất

Việc gấp 240 000 000 giá trị yêu cầu một số dòng mã để hoạt động hiệu quả. Numpy hoạt động bằng cách tải tất cả dữ liệu vào bộ nhớ, do đó bạn sẽ không thể tải dữ liệu một cách ngây thơ như bạn đã tìm ra. Bạn phải chia vấn đề thành các khối và sử dụng các phương pháp ánh xạ/thu nhỏ:

  • Chọn kích thước khối (theo giới hạn bộ nhớ)
  • Chia dữ liệu thành các khối có kích thước này (bằng cách tạo nhiều tệp hoặc bằng cách chỉ tải một khối mỗi lần)
  • Đối với mỗi khối, tính giá trị trung bình và dỡ bỏ dữ liệu
  • Kết hợp mức trung bình vào kết quả cuối cùng của bạn.

bạn có thể sử dụngfrom_bufferSử dụng các tham số đếm và bù để tải một phần dữ liệu.

biên tập

Bạn có thể thử sử dụng trình lược tả python để kiểm tra chi phí tương đối là bao nhiêu.

Nếu chi phí chính là xử lý, bạn có thể thử song song hóa nó bằng cách sử dụng nhóm quy trình từ thư viện đa quy trình hoặc phiên bản song song của numpy. Hoặc sử dụng thư viện GPGPU như pyopencl.

Nếu thời gian xử lý bằng thời gian tải, bạn có thể thử thực hiện hai tác vụ bằng cách sử dụng thư viện đa xử lý. Tạo một luồng để tải dữ liệu và cung cấp nó cho luồng xử lý.

Nếu chi phí chính là thời gian tải thì đó là một vấn đề lớn. Bạn có thể thử phân chia nhiệm vụ trên các máy khác nhau (sử dụng thư viện lưới để quản lý việc sao chép dữ liệu và phân phối nhiệm vụ).

Về python - số liệu thống kê về mảng khổng lồ (HDF5), chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/12264309/

26 4 0
Bài viết khuyến nghị: python - Tắt in gỡ lỗi
Bài viết khuyến nghị: Khởi động mùa xuân: Không sử dụng TLSv1.
Bài viết khuyến nghị: node.js - Thiết lập lại kết nối vé Node TLS
Bài viết khuyến nghị: Các biến lồng nhau trong python
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress