Hoạt động của DepthConcat trong 'Đi sâu hơn với các kết cấu' hoạt động như thế nào?


12

Đọc sâu hơn với các kết luận Tôi bắt gặp một lớp DepthConcat , một khối xây dựng của các mô-đun khởi động được đề xuất , kết hợp đầu ra của nhiều thang đo có kích thước khác nhau. Các tác giả gọi đây là "Bộ lọc ghép". Dường như có một triển khai cho Torch , nhưng tôi không thực sự hiểu nó là gì. Ai đó có thể giải thích bằng những từ đơn giản?

Câu trả lời:


9

Tôi không nghĩ đầu ra của mô-đun khởi động có kích cỡ khác nhau.

nhập mô tả hình ảnh ở đây

Đối với các lớp chập, người ta thường sử dụng phần đệm để giữ độ phân giải không gian.

Lớp gộp dưới cùng bên phải (khung màu xanh) trong số các lớp chập khác có vẻ khó xử. Tuy nhiên, không giống như các lớp ghép mẫu thông thường (khung màu đỏ, sải chân> 1), họ đã sử dụng một bước 1 trong lớp gộp đó . Các lớp tổng hợp Stride-1 thực sự hoạt động theo cách tương tự như các lớp chập, nhưng với hoạt động tích chập được thay thế bằng hoạt động tối đa.

Vì vậy, độ phân giải sau lớp gộp cũng không thay đổi và chúng ta có thể ghép các lớp gộp và tích chập lại với nhau theo chiều "chiều sâu".

nhập mô tả hình ảnh ở đây

Như thể hiện trong hình trên từ bài báo, mô-đun khởi động thực sự giữ độ phân giải không gian.


6

Tôi đã có cùng một câu hỏi trong đầu khi bạn đọc tờ giấy trắng đó và các tài nguyên bạn đã tham chiếu đã giúp tôi đưa ra một triển khai.

Trong mã Torch bạn đã tham chiếu , nó nói:

--[[ DepthConcat ]]--
-- Concatenates the output of Convolutions along the depth dimension
-- (nOutputFrame). This is used to implement the DepthConcat layer
-- of the Going deeper with convolutions paper :

Từ "chuyên sâu" trong Deep learning có chút mơ hồ. May mắn là câu trả lời SO này cung cấp một số sự rõ ràng:

Trong Deep Neural Networks, độ sâu đề cập đến độ sâu của mạng nhưng trong bối cảnh này, độ sâu được sử dụng để nhận dạng hình ảnh và nó chuyển sang chiều thứ 3 của hình ảnh.

Trong trường hợp này, bạn có một hình ảnh và kích thước của đầu vào này là 32x32x3 là (chiều rộng, chiều cao, chiều sâu). Mạng lưới thần kinh sẽ có thể học dựa trên các tham số này khi độ sâu dịch sang các kênh khác nhau của hình ảnh đào tạo.

Vì vậy, DepthConcat ghép các thang đo dọc theo chiều sâu là chiều cuối cùng của tenxơ và trong trường hợp này là chiều thứ 3 của một tenxơ 3D.

DepthConcat cần làm cho các thang đo giống nhau ở tất cả các kích thước ngoại trừ kích thước chiều sâu, như mã Torch nói:

-- The normal Concat Module can't be used since the spatial dimensions
-- of tensors to be concatenated may have different values. To deal with
-- this, we select the largest spatial dimensions and add zero-padding
-- around the smaller dimensions.

ví dụ

A = tensor of size (14, 14, 2)
B = tensor of size (16, 16, 3)
result = DepthConcat([A, B])
where result with have a height of 16, a width of 16 and a depth of 5 (2 + 3). 

nhập mô tả hình ảnh ở đây

Trong sơ đồ trên, chúng ta thấy một hình ảnh của thang đo kết quả DepthConcat, trong đó vùng màu trắng là phần đệm bằng 0, màu đỏ là thang đo A và màu xanh lá cây là thang đo B.

Đây là mã giả cho DepthConcat trong ví dụ này:

  1. Nhìn vào tenx A và tenx B và tìm kích thước không gian lớn nhất, trong trường hợp này sẽ là 16 kích thước chiều rộng và 16 chiều cao của tenx B. Vì tenor A quá nhỏ và không khớp với kích thước không gian của Tenor B, nên nó sẽ cần phải được đệm.
  2. Đệm các kích thước không gian của tenxơ A bằng các số 0 bằng cách thêm các số 0 vào các kích thước thứ nhất và thứ hai làm cho kích thước của tenx A (16, 16, 2).
  3. Nối tenxơ đệm A với tenx B dọc theo chiều sâu (thứ 3).

Tôi hy vọng điều này sẽ giúp những người khác nghĩ cùng câu hỏi đọc tờ giấy trắng đó.


giới thiệu hoàn hảo. Điều này được nối theo hướng sâu. Không theo hướng không gian.
Shamane Siriwardhana
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.