• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

Dense 쪽에서 input channel과 output channel을 똑같이 설정하는 이유가 무엇인가요?

21.11.02 01:05 작성 조회수 201

0

안녕하세요

Dense(512, 512)와 같이 굳이 채널을 같게 해서 출력을 내보내는 경우의 의미가 뭔지 알 수 있나요?

512x512로 파라미터만 커지고 차원 압축 개념이 없어서 비효율적일 것 같습니다

답변 2

·

답변을 작성해보세요.

0

유영재님의 프로필

유영재

2021.11.02

선생님 안녕하세요

현재 진행하고 있는 petfinder라는 대회에서 본 공개된 코드입니다

https://www.kaggle.com/neongen/tez-pytorch-swin-large-arcface-bcewithlogits

 

동물 이미지를 보고, 0-100점의 좋아요와 같은 점수를 regression하는 대회입니다

해당 코드에서 nn.Linear(512, 512, bias=False),

부분을 보고 의문이 들었습니다

 

감사합니다

음,  정확한 답은 아닐지도 모르지만,

Swin Transformer 모델의 출력을 regression을 위해서 바로 노드 1개인 Linear Layer에 바로 붙이지 않고, 좀 더 정보의 풍부함을 가지기 위해서 Linear(512, 512,,,,) layer를 추가하는 것 같습니다.

여러 batch normalization -> Linear layer -> batch normalization -> Linear Layer를  계속 연결해서 좀 더 풍부한 정보를 가질 수 있도록 만들어 주는것 같습니다. 

self.neck = nn.Sequential(
            nn.BatchNorm1d(in_features),
            nn.Linear(in_features, 512, bias=False),
            nn.ReLU(inplace=True),
            nn.BatchNorm1d(512),
            nn.Linear(512, 512, bias=False),
            nn.BatchNorm1d(512)
        )

0

안녕하십니까,

왜, 그렇게 사용하는지 저도 잘 모르겠습니다. 

어디서, 그렇게 사용했는지, 보다 자세한 정보를 주시면 제가 함 확인해 보겠습니다.