Bây giờ câu hỏi là làm thế nào để xử lý các kích thước hình ảnh lớn như vậy trong đó không có đặc quyền của downsampling
Tôi giả sử rằng bằng cách lấy mẫu xuống, bạn có nghĩa là thu nhỏ đầu vào trước khi chuyển nó vào CNN. Lớp kết hợp cho phép thu nhỏ hình ảnh trong mạng, bằng cách chọn một bước tiến lớn, sẽ tiết kiệm tài nguyên cho các lớp tiếp theo. Trên thực tế, đó là những gì nó phải làm, nếu không mô hình của bạn sẽ không phù hợp với GPU.
1) Có kỹ thuật nào để xử lý những hình ảnh lớn như vậy sẽ được đào tạo không?
Các nghiên cứu thường quy mô hình ảnh đến một kích thước có thể cộng hưởng. Nhưng nếu đó không phải là một lựa chọn cho bạn, bạn sẽ cần hạn chế CNN của mình. Ngoài việc lấy mẫu xuống ở các lớp đầu, tôi khuyên bạn nên loại bỏ lớp FC (thường lấy hầu hết các tham số) để ủng hộ lớp chập . Ngoài ra, bạn sẽ phải truyền dữ liệu của mình theo từng kỷ nguyên, vì nó sẽ không phù hợp với GPU của bạn.
Lưu ý rằng không có gì trong số này sẽ ngăn tải trọng tính toán nặng ở các lớp đầu, chính xác là do đầu vào quá lớn: tích chập là một hoạt động đắt tiền và các lớp đầu tiên sẽ thực hiện rất nhiều trong số chúng trong mỗi lần chuyển tiếp và lùi. Tóm lại, đào tạo sẽ chậm.
2) Kích thước lô nào là hợp lý để sử dụng?
Đây là một vấn đề khác. Một hình ảnh duy nhất2400x2400x3x4
(3 kênh và 4 byte cho mỗi pixel) là ~ 70Mb, do đó bạn khó có thể mua được ngay cả kích thước lô 10. Thực tế hơn sẽ là 5. Lưu ý rằng hầu hết bộ nhớ sẽ được lấy bởi các tham số CNN. Tôi nghĩ trong trường hợp này, việc giảm kích thước bằng cách sử dụng các giá trị 16 bit thay vì 32 bit có ý nghĩa - theo cách này bạn sẽ có thể nhân đôi các đợt.
3) Có biện pháp phòng ngừa nào để thực hiện hoặc tăng giảm tài nguyên phần cứng mà tôi có thể làm không?
Nút thắt của bạn là bộ nhớ GPU. Nếu bạn có thể mua GPU khác, hãy lấy nó và chia mạng qua chúng. Mọi thứ khác đều không đáng kể so với bộ nhớ GPU.