How to share a fully connected layer and is it possible to use a channel direction pooling?
조회 수: 10 (최근 30일)
이전 댓글 표시
(한국어로 답변주실 수 있다면 한국어로 답변 부탁드립니다.)
I am currently designing a model using the Deep Network Designer to implement a Convolutional Block Attention Module (CBAM).
For this, I need to use a channel-wise max/average pooling layer, and I am wondering if there is a way to implement this within MATLAB.
Additionally, I would like to know if there is a method to share a fully connected layer across different parts of the network. The current implementation of the fully connected layer seems to be limited to a single input and output.
Lastly, when passing through the fully connected layer, the dimension of the output is converted to (C x B). Is there a way to reshape this back to (S x S x C x B) in order to perform element-wise multiplication?
댓글 수: 0
채택된 답변
Angelo Yeo
2024년 8월 21일
CBAM은 MATLAB에서 구현되어 있지 않습니다만, 가장 간단한 방법 중 하나는 Pytorch로 구현된 모델을 MATLAB에 불러와 사용하는 것입니다. 가령, 아래의 Repo에 들어있는 CBAM 모델을 pt 파일로 저장한 뒤에 MATLAB으로 가져와 사용할 수 있습니다.
Pytorch 모델을 MATLAB으로 가져올 때 아래와 같은 기능을 활용할 수 있습니다.
모델을 가져와보면 Adaptive Maxpooling 레이어는 MATLAB에서 내장함수로 구현된 것이 없기 때문에 이 레이어에 대해서만 custom으로 만들어주시면 CBAM 전체 모델을 사용할 수 있습니다.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Image Data Workflows에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!