How to share a fully connected layer and is it possible to use a channel direction pooling?

12 visualizaciones (últimos 30 días)
(한국어로 답변주실 수 있다면 한국어로 답변 부탁드립니다.)
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?

Respuesta aceptada

Angelo Yeo
Angelo Yeo el 21 de Ag. de 2024
CBAM은 MATLAB에서 구현되어 있지 않습니다만, 가장 간단한 방법 중 하나는 Pytorch로 구현된 모델을 MATLAB에 불러와 사용하는 것입니다. 가령, 아래의 Repo에 들어있는 CBAM 모델을 pt 파일로 저장한 뒤에 MATLAB으로 가져와 사용할 수 있습니다.
Pytorch 모델을 MATLAB으로 가져올 때 아래와 같은 기능을 활용할 수 있습니다.
모델을 가져와보면 Adaptive Maxpooling 레이어는 MATLAB에서 내장함수로 구현된 것이 없기 때문에 이 레이어에 대해서만 custom으로 만들어주시면 CBAM 전체 모델을 사용할 수 있습니다.

Más respuestas (0)

Categorías

Más información sobre Image Data Workflows en Help Center y File Exchange.

Productos


Versión

R2024a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by