시작은 미약하였으나 , 그 끝은 창대하리라

[Pytorch, Huggingface] Pretrained Model 의 특정 Layer 만 추출 본문

인공지능/딥러닝 및 파이토치 기타 정리

[Pytorch, Huggingface] Pretrained Model 의 특정 Layer 만 추출

애플파ol 2024. 4. 26. 15:46

목차

  1. 모델 로드
  2. 특정 Layer 만을 추출
    1. backbone 모델추출
    2. 구체적인 특정 layer만 추출

 

 

1. 모델 로드

from transformers import DetrForObjectDetection
model_DETR= DetrForObjectDetection.from_pretrained("facebook/detr-resnet-50", revision="no_timm")

# Model 의 key 값 확인
for i in model_DETR.state_dict().keys():
    print(i)

 

  → model 의 key 값 출력 결과

model.backbone.conv_encoder.model.embedder.embedder.convolution.weight
model.backbone.conv_encoder.model.embedder.embedder.normalization.weight
model.backbone.conv_encoder.model.embedder.embedder.normalization.bias
model.backbone.conv_encoder.model.embedder.embedder.normalization.running_mean
model.backbone.conv_encoder.model.embedder.embedder.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.0.layers.0.shortcut.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.0.layers.0.shortcut.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.0.layers.0.shortcut.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.0.layers.0.shortcut.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.0.layers.0.shortcut.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.0.layers.0.layer.0.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.0.layers.0.layer.0.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.0.layers.0.layer.0.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.0.layers.0.layer.0.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.0.layers.0.layer.0.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.0.layers.0.layer.1.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.0.layers.0.layer.1.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.0.layers.0.layer.1.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.0.layers.0.layer.1.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.0.layers.0.layer.1.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.0.layers.0.layer.2.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.0.layers.0.layer.2.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.0.layers.0.layer.2.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.0.layers.0.layer.2.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.0.layers.0.layer.2.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.0.layers.1.layer.0.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.0.layers.1.layer.0.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.0.layers.1.layer.0.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.0.layers.1.layer.0.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.0.layers.1.layer.0.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.0.layers.1.layer.1.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.0.layers.1.layer.1.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.0.layers.1.layer.1.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.0.layers.1.layer.1.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.0.layers.1.layer.1.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.0.layers.1.layer.2.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.0.layers.1.layer.2.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.0.layers.1.layer.2.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.0.layers.1.layer.2.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.0.layers.1.layer.2.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.0.layers.2.layer.0.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.0.layers.2.layer.0.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.0.layers.2.layer.0.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.0.layers.2.layer.0.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.0.layers.2.layer.0.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.0.layers.2.layer.1.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.0.layers.2.layer.1.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.0.layers.2.layer.1.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.0.layers.2.layer.1.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.0.layers.2.layer.1.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.0.layers.2.layer.2.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.0.layers.2.layer.2.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.0.layers.2.layer.2.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.0.layers.2.layer.2.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.0.layers.2.layer.2.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.1.layers.0.shortcut.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.0.shortcut.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.0.shortcut.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.1.layers.0.shortcut.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.1.layers.0.shortcut.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.1.layers.0.layer.0.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.0.layer.0.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.0.layer.0.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.1.layers.0.layer.0.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.1.layers.0.layer.0.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.1.layers.0.layer.1.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.0.layer.1.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.0.layer.1.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.1.layers.0.layer.1.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.1.layers.0.layer.1.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.1.layers.0.layer.2.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.0.layer.2.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.0.layer.2.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.1.layers.0.layer.2.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.1.layers.0.layer.2.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.1.layers.1.layer.0.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.1.layer.0.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.1.layer.0.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.1.layers.1.layer.0.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.1.layers.1.layer.0.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.1.layers.1.layer.1.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.1.layer.1.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.1.layer.1.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.1.layers.1.layer.1.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.1.layers.1.layer.1.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.1.layers.1.layer.2.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.1.layer.2.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.1.layer.2.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.1.layers.1.layer.2.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.1.layers.1.layer.2.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.1.layers.2.layer.0.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.2.layer.0.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.2.layer.0.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.1.layers.2.layer.0.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.1.layers.2.layer.0.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.1.layers.2.layer.1.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.2.layer.1.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.2.layer.1.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.1.layers.2.layer.1.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.1.layers.2.layer.1.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.1.layers.2.layer.2.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.2.layer.2.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.2.layer.2.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.1.layers.2.layer.2.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.1.layers.2.layer.2.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.1.layers.3.layer.0.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.3.layer.0.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.3.layer.0.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.1.layers.3.layer.0.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.1.layers.3.layer.0.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.1.layers.3.layer.1.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.3.layer.1.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.3.layer.1.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.1.layers.3.layer.1.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.1.layers.3.layer.1.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.1.layers.3.layer.2.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.3.layer.2.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.1.layers.3.layer.2.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.1.layers.3.layer.2.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.1.layers.3.layer.2.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.2.layers.0.shortcut.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.0.shortcut.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.0.shortcut.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.2.layers.0.shortcut.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.2.layers.0.shortcut.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.2.layers.0.layer.0.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.0.layer.0.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.0.layer.0.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.2.layers.0.layer.0.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.2.layers.0.layer.0.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.2.layers.0.layer.1.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.0.layer.1.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.0.layer.1.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.2.layers.0.layer.1.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.2.layers.0.layer.1.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.2.layers.0.layer.2.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.0.layer.2.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.0.layer.2.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.2.layers.0.layer.2.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.2.layers.0.layer.2.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.2.layers.1.layer.0.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.1.layer.0.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.1.layer.0.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.2.layers.1.layer.0.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.2.layers.1.layer.0.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.2.layers.1.layer.1.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.1.layer.1.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.1.layer.1.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.2.layers.1.layer.1.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.2.layers.1.layer.1.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.2.layers.1.layer.2.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.1.layer.2.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.1.layer.2.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.2.layers.1.layer.2.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.2.layers.1.layer.2.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.2.layers.2.layer.0.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.2.layer.0.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.2.layer.0.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.2.layers.2.layer.0.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.2.layers.2.layer.0.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.2.layers.2.layer.1.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.2.layer.1.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.2.layer.1.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.2.layers.2.layer.1.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.2.layers.2.layer.1.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.2.layers.2.layer.2.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.2.layer.2.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.2.layer.2.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.2.layers.2.layer.2.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.2.layers.2.layer.2.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.2.layers.3.layer.0.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.3.layer.0.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.3.layer.0.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.2.layers.3.layer.0.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.2.layers.3.layer.0.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.2.layers.3.layer.1.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.3.layer.1.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.3.layer.1.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.2.layers.3.layer.1.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.2.layers.3.layer.1.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.2.layers.3.layer.2.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.3.layer.2.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.3.layer.2.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.2.layers.3.layer.2.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.2.layers.3.layer.2.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.2.layers.4.layer.0.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.4.layer.0.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.4.layer.0.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.2.layers.4.layer.0.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.2.layers.4.layer.0.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.2.layers.4.layer.1.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.4.layer.1.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.4.layer.1.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.2.layers.4.layer.1.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.2.layers.4.layer.1.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.2.layers.4.layer.2.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.4.layer.2.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.4.layer.2.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.2.layers.4.layer.2.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.2.layers.4.layer.2.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.2.layers.5.layer.0.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.5.layer.0.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.5.layer.0.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.2.layers.5.layer.0.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.2.layers.5.layer.0.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.2.layers.5.layer.1.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.5.layer.1.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.5.layer.1.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.2.layers.5.layer.1.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.2.layers.5.layer.1.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.2.layers.5.layer.2.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.5.layer.2.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.2.layers.5.layer.2.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.2.layers.5.layer.2.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.2.layers.5.layer.2.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.3.layers.0.shortcut.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.3.layers.0.shortcut.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.3.layers.0.shortcut.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.3.layers.0.shortcut.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.3.layers.0.shortcut.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.3.layers.0.layer.0.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.3.layers.0.layer.0.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.3.layers.0.layer.0.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.3.layers.0.layer.0.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.3.layers.0.layer.0.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.3.layers.0.layer.1.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.3.layers.0.layer.1.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.3.layers.0.layer.1.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.3.layers.0.layer.1.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.3.layers.0.layer.1.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.3.layers.0.layer.2.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.3.layers.0.layer.2.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.3.layers.0.layer.2.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.3.layers.0.layer.2.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.3.layers.0.layer.2.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.3.layers.1.layer.0.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.3.layers.1.layer.0.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.3.layers.1.layer.0.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.3.layers.1.layer.0.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.3.layers.1.layer.0.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.3.layers.1.layer.1.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.3.layers.1.layer.1.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.3.layers.1.layer.1.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.3.layers.1.layer.1.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.3.layers.1.layer.1.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.3.layers.1.layer.2.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.3.layers.1.layer.2.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.3.layers.1.layer.2.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.3.layers.1.layer.2.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.3.layers.1.layer.2.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.3.layers.2.layer.0.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.3.layers.2.layer.0.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.3.layers.2.layer.0.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.3.layers.2.layer.0.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.3.layers.2.layer.0.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.3.layers.2.layer.1.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.3.layers.2.layer.1.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.3.layers.2.layer.1.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.3.layers.2.layer.1.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.3.layers.2.layer.1.normalization.running_var
model.backbone.conv_encoder.model.encoder.stages.3.layers.2.layer.2.convolution.weight
model.backbone.conv_encoder.model.encoder.stages.3.layers.2.layer.2.normalization.weight
model.backbone.conv_encoder.model.encoder.stages.3.layers.2.layer.2.normalization.bias
model.backbone.conv_encoder.model.encoder.stages.3.layers.2.layer.2.normalization.running_mean
model.backbone.conv_encoder.model.encoder.stages.3.layers.2.layer.2.normalization.running_var
model.input_projection.weight
model.input_projection.bias
model.query_position_embeddings.weight
model.encoder.layers.0.self_attn.k_proj.weight
model.encoder.layers.0.self_attn.k_proj.bias
model.encoder.layers.0.self_attn.v_proj.weight
model.encoder.layers.0.self_attn.v_proj.bias
model.encoder.layers.0.self_attn.q_proj.weight
model.encoder.layers.0.self_attn.q_proj.bias
model.encoder.layers.0.self_attn.out_proj.weight
model.encoder.layers.0.self_attn.out_proj.bias
model.encoder.layers.0.self_attn_layer_norm.weight
model.encoder.layers.0.self_attn_layer_norm.bias
model.encoder.layers.0.fc1.weight
model.encoder.layers.0.fc1.bias
model.encoder.layers.0.fc2.weight
model.encoder.layers.0.fc2.bias
model.encoder.layers.0.final_layer_norm.weight
model.encoder.layers.0.final_layer_norm.bias
model.encoder.layers.1.self_attn.k_proj.weight
model.encoder.layers.1.self_attn.k_proj.bias
model.encoder.layers.1.self_attn.v_proj.weight
model.encoder.layers.1.self_attn.v_proj.bias
model.encoder.layers.1.self_attn.q_proj.weight
model.encoder.layers.1.self_attn.q_proj.bias
model.encoder.layers.1.self_attn.out_proj.weight
model.encoder.layers.1.self_attn.out_proj.bias
model.encoder.layers.1.self_attn_layer_norm.weight
model.encoder.layers.1.self_attn_layer_norm.bias
model.encoder.layers.1.fc1.weight
model.encoder.layers.1.fc1.bias
model.encoder.layers.1.fc2.weight
model.encoder.layers.1.fc2.bias
model.encoder.layers.1.final_layer_norm.weight
model.encoder.layers.1.final_layer_norm.bias
model.encoder.layers.2.self_attn.k_proj.weight
model.encoder.layers.2.self_attn.k_proj.bias
model.encoder.layers.2.self_attn.v_proj.weight
model.encoder.layers.2.self_attn.v_proj.bias
model.encoder.layers.2.self_attn.q_proj.weight
model.encoder.layers.2.self_attn.q_proj.bias
model.encoder.layers.2.self_attn.out_proj.weight
model.encoder.layers.2.self_attn.out_proj.bias
model.encoder.layers.2.self_attn_layer_norm.weight
model.encoder.layers.2.self_attn_layer_norm.bias
model.encoder.layers.2.fc1.weight
model.encoder.layers.2.fc1.bias
model.encoder.layers.2.fc2.weight
model.encoder.layers.2.fc2.bias
model.encoder.layers.2.final_layer_norm.weight
model.encoder.layers.2.final_layer_norm.bias
model.encoder.layers.3.self_attn.k_proj.weight
model.encoder.layers.3.self_attn.k_proj.bias
model.encoder.layers.3.self_attn.v_proj.weight
model.encoder.layers.3.self_attn.v_proj.bias
model.encoder.layers.3.self_attn.q_proj.weight
model.encoder.layers.3.self_attn.q_proj.bias
model.encoder.layers.3.self_attn.out_proj.weight
model.encoder.layers.3.self_attn.out_proj.bias
model.encoder.layers.3.self_attn_layer_norm.weight
model.encoder.layers.3.self_attn_layer_norm.bias
model.encoder.layers.3.fc1.weight
model.encoder.layers.3.fc1.bias
model.encoder.layers.3.fc2.weight
model.encoder.layers.3.fc2.bias
model.encoder.layers.3.final_layer_norm.weight
model.encoder.layers.3.final_layer_norm.bias
model.encoder.layers.4.self_attn.k_proj.weight
model.encoder.layers.4.self_attn.k_proj.bias
model.encoder.layers.4.self_attn.v_proj.weight
model.encoder.layers.4.self_attn.v_proj.bias
model.encoder.layers.4.self_attn.q_proj.weight
model.encoder.layers.4.self_attn.q_proj.bias
model.encoder.layers.4.self_attn.out_proj.weight
model.encoder.layers.4.self_attn.out_proj.bias
model.encoder.layers.4.self_attn_layer_norm.weight
model.encoder.layers.4.self_attn_layer_norm.bias
model.encoder.layers.4.fc1.weight
model.encoder.layers.4.fc1.bias
model.encoder.layers.4.fc2.weight
model.encoder.layers.4.fc2.bias
model.encoder.layers.4.final_layer_norm.weight
model.encoder.layers.4.final_layer_norm.bias
model.encoder.layers.5.self_attn.k_proj.weight
model.encoder.layers.5.self_attn.k_proj.bias
model.encoder.layers.5.self_attn.v_proj.weight
model.encoder.layers.5.self_attn.v_proj.bias
model.encoder.layers.5.self_attn.q_proj.weight
model.encoder.layers.5.self_attn.q_proj.bias
model.encoder.layers.5.self_attn.out_proj.weight
model.encoder.layers.5.self_attn.out_proj.bias
model.encoder.layers.5.self_attn_layer_norm.weight
model.encoder.layers.5.self_attn_layer_norm.bias
model.encoder.layers.5.fc1.weight
model.encoder.layers.5.fc1.bias
model.encoder.layers.5.fc2.weight
model.encoder.layers.5.fc2.bias
model.encoder.layers.5.final_layer_norm.weight
model.encoder.layers.5.final_layer_norm.bias
model.decoder.layers.0.self_attn.k_proj.weight
model.decoder.layers.0.self_attn.k_proj.bias
model.decoder.layers.0.self_attn.v_proj.weight
model.decoder.layers.0.self_attn.v_proj.bias
model.decoder.layers.0.self_attn.q_proj.weight
model.decoder.layers.0.self_attn.q_proj.bias
model.decoder.layers.0.self_attn.out_proj.weight
model.decoder.layers.0.self_attn.out_proj.bias
model.decoder.layers.0.self_attn_layer_norm.weight
model.decoder.layers.0.self_attn_layer_norm.bias
model.decoder.layers.0.encoder_attn.k_proj.weight
model.decoder.layers.0.encoder_attn.k_proj.bias
model.decoder.layers.0.encoder_attn.v_proj.weight
model.decoder.layers.0.encoder_attn.v_proj.bias
model.decoder.layers.0.encoder_attn.q_proj.weight
model.decoder.layers.0.encoder_attn.q_proj.bias
model.decoder.layers.0.encoder_attn.out_proj.weight
model.decoder.layers.0.encoder_attn.out_proj.bias
model.decoder.layers.0.encoder_attn_layer_norm.weight
model.decoder.layers.0.encoder_attn_layer_norm.bias
model.decoder.layers.0.fc1.weight
model.decoder.layers.0.fc1.bias
model.decoder.layers.0.fc2.weight
model.decoder.layers.0.fc2.bias
model.decoder.layers.0.final_layer_norm.weight
model.decoder.layers.0.final_layer_norm.bias
model.decoder.layers.1.self_attn.k_proj.weight
model.decoder.layers.1.self_attn.k_proj.bias
model.decoder.layers.1.self_attn.v_proj.weight
model.decoder.layers.1.self_attn.v_proj.bias
model.decoder.layers.1.self_attn.q_proj.weight
model.decoder.layers.1.self_attn.q_proj.bias
model.decoder.layers.1.self_attn.out_proj.weight
model.decoder.layers.1.self_attn.out_proj.bias
model.decoder.layers.1.self_attn_layer_norm.weight
model.decoder.layers.1.self_attn_layer_norm.bias
model.decoder.layers.1.encoder_attn.k_proj.weight
model.decoder.layers.1.encoder_attn.k_proj.bias
model.decoder.layers.1.encoder_attn.v_proj.weight
model.decoder.layers.1.encoder_attn.v_proj.bias
model.decoder.layers.1.encoder_attn.q_proj.weight
model.decoder.layers.1.encoder_attn.q_proj.bias
model.decoder.layers.1.encoder_attn.out_proj.weight
model.decoder.layers.1.encoder_attn.out_proj.bias
model.decoder.layers.1.encoder_attn_layer_norm.weight
model.decoder.layers.1.encoder_attn_layer_norm.bias
model.decoder.layers.1.fc1.weight
model.decoder.layers.1.fc1.bias
model.decoder.layers.1.fc2.weight
model.decoder.layers.1.fc2.bias
model.decoder.layers.1.final_layer_norm.weight
model.decoder.layers.1.final_layer_norm.bias
model.decoder.layers.2.self_attn.k_proj.weight
model.decoder.layers.2.self_attn.k_proj.bias
model.decoder.layers.2.self_attn.v_proj.weight
model.decoder.layers.2.self_attn.v_proj.bias
model.decoder.layers.2.self_attn.q_proj.weight
model.decoder.layers.2.self_attn.q_proj.bias
model.decoder.layers.2.self_attn.out_proj.weight
model.decoder.layers.2.self_attn.out_proj.bias
model.decoder.layers.2.self_attn_layer_norm.weight
model.decoder.layers.2.self_attn_layer_norm.bias
model.decoder.layers.2.encoder_attn.k_proj.weight
model.decoder.layers.2.encoder_attn.k_proj.bias
model.decoder.layers.2.encoder_attn.v_proj.weight
model.decoder.layers.2.encoder_attn.v_proj.bias
model.decoder.layers.2.encoder_attn.q_proj.weight
model.decoder.layers.2.encoder_attn.q_proj.bias
model.decoder.layers.2.encoder_attn.out_proj.weight
model.decoder.layers.2.encoder_attn.out_proj.bias
model.decoder.layers.2.encoder_attn_layer_norm.weight
model.decoder.layers.2.encoder_attn_layer_norm.bias
model.decoder.layers.2.fc1.weight
model.decoder.layers.2.fc1.bias
model.decoder.layers.2.fc2.weight
model.decoder.layers.2.fc2.bias
model.decoder.layers.2.final_layer_norm.weight
model.decoder.layers.2.final_layer_norm.bias
model.decoder.layers.3.self_attn.k_proj.weight
model.decoder.layers.3.self_attn.k_proj.bias
model.decoder.layers.3.self_attn.v_proj.weight
model.decoder.layers.3.self_attn.v_proj.bias
model.decoder.layers.3.self_attn.q_proj.weight
model.decoder.layers.3.self_attn.q_proj.bias
model.decoder.layers.3.self_attn.out_proj.weight
model.decoder.layers.3.self_attn.out_proj.bias
model.decoder.layers.3.self_attn_layer_norm.weight
model.decoder.layers.3.self_attn_layer_norm.bias
model.decoder.layers.3.encoder_attn.k_proj.weight
model.decoder.layers.3.encoder_attn.k_proj.bias
model.decoder.layers.3.encoder_attn.v_proj.weight
model.decoder.layers.3.encoder_attn.v_proj.bias
model.decoder.layers.3.encoder_attn.q_proj.weight
model.decoder.layers.3.encoder_attn.q_proj.bias
model.decoder.layers.3.encoder_attn.out_proj.weight
model.decoder.layers.3.encoder_attn.out_proj.bias
model.decoder.layers.3.encoder_attn_layer_norm.weight
model.decoder.layers.3.encoder_attn_layer_norm.bias
model.decoder.layers.3.fc1.weight
model.decoder.layers.3.fc1.bias
model.decoder.layers.3.fc2.weight
model.decoder.layers.3.fc2.bias
model.decoder.layers.3.final_layer_norm.weight
model.decoder.layers.3.final_layer_norm.bias
model.decoder.layers.4.self_attn.k_proj.weight
model.decoder.layers.4.self_attn.k_proj.bias
model.decoder.layers.4.self_attn.v_proj.weight
model.decoder.layers.4.self_attn.v_proj.bias
model.decoder.layers.4.self_attn.q_proj.weight
model.decoder.layers.4.self_attn.q_proj.bias
model.decoder.layers.4.self_attn.out_proj.weight
model.decoder.layers.4.self_attn.out_proj.bias
model.decoder.layers.4.self_attn_layer_norm.weight
model.decoder.layers.4.self_attn_layer_norm.bias
model.decoder.layers.4.encoder_attn.k_proj.weight
model.decoder.layers.4.encoder_attn.k_proj.bias
model.decoder.layers.4.encoder_attn.v_proj.weight
model.decoder.layers.4.encoder_attn.v_proj.bias
model.decoder.layers.4.encoder_attn.q_proj.weight
model.decoder.layers.4.encoder_attn.q_proj.bias
model.decoder.layers.4.encoder_attn.out_proj.weight
model.decoder.layers.4.encoder_attn.out_proj.bias
model.decoder.layers.4.encoder_attn_layer_norm.weight
model.decoder.layers.4.encoder_attn_layer_norm.bias
model.decoder.layers.4.fc1.weight
model.decoder.layers.4.fc1.bias
model.decoder.layers.4.fc2.weight
model.decoder.layers.4.fc2.bias
model.decoder.layers.4.final_layer_norm.weight
model.decoder.layers.4.final_layer_norm.bias
model.decoder.layers.5.self_attn.k_proj.weight
model.decoder.layers.5.self_attn.k_proj.bias
model.decoder.layers.5.self_attn.v_proj.weight
model.decoder.layers.5.self_attn.v_proj.bias
model.decoder.layers.5.self_attn.q_proj.weight
model.decoder.layers.5.self_attn.q_proj.bias
model.decoder.layers.5.self_attn.out_proj.weight
model.decoder.layers.5.self_attn.out_proj.bias
model.decoder.layers.5.self_attn_layer_norm.weight
model.decoder.layers.5.self_attn_layer_norm.bias
model.decoder.layers.5.encoder_attn.k_proj.weight
model.decoder.layers.5.encoder_attn.k_proj.bias
model.decoder.layers.5.encoder_attn.v_proj.weight
model.decoder.layers.5.encoder_attn.v_proj.bias
model.decoder.layers.5.encoder_attn.q_proj.weight
model.decoder.layers.5.encoder_attn.q_proj.bias
model.decoder.layers.5.encoder_attn.out_proj.weight
model.decoder.layers.5.encoder_attn.out_proj.bias
model.decoder.layers.5.encoder_attn_layer_norm.weight
model.decoder.layers.5.encoder_attn_layer_norm.bias
model.decoder.layers.5.fc1.weight
model.decoder.layers.5.fc1.bias
model.decoder.layers.5.fc2.weight
model.decoder.layers.5.fc2.bias
model.decoder.layers.5.final_layer_norm.weight
model.decoder.layers.5.final_layer_norm.bias
model.decoder.layernorm.weight
model.decoder.layernorm.bias
class_labels_classifier.weight
class_labels_classifier.bias
bbox_predictor.layers.0.weight
bbox_predictor.layers.0.bias
bbox_predictor.layers.1.weight
bbox_predictor.layers.1.bias
bbox_predictor.layers.2.weight
bbox_predictor.layers.2.bias

 

 

 → model 의 구조 출력

print(model_DETR)

 

DetrForObjectDetection(
  (model): DetrModel(
    (backbone): DetrConvModel(
      (conv_encoder): DetrConvEncoder(
        (model): ResNetBackbone(
          (embedder): ResNetEmbeddings(
            (embedder): ResNetConvLayer(
              (convolution): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)
              (normalization): DetrFrozenBatchNorm2d()
              (activation): ReLU()
            )
            (pooler): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
          )
          (encoder): ResNetEncoder(
            (stages): ModuleList(
              (0): ResNetStage(
                (layers): Sequential(
                  (0): ResNetBottleNeckLayer(
                    (shortcut): ResNetShortCut(
                      (convolution): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
                      (normalization): DetrFrozenBatchNorm2d()
                    )
                    (layer): Sequential(
                      (0): ResNetConvLayer(
                        (convolution): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (1): ResNetConvLayer(
                        (convolution): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (2): ResNetConvLayer(
                        (convolution): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): Identity()
                      )
                    )
                    (activation): ReLU()
                  )
                  (1): ResNetBottleNeckLayer(
                    (shortcut): Identity()
                    (layer): Sequential(
                      (0): ResNetConvLayer(
                        (convolution): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (1): ResNetConvLayer(
                        (convolution): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (2): ResNetConvLayer(
                        (convolution): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): Identity()
                      )
                    )
                    (activation): ReLU()
                  )
                  (2): ResNetBottleNeckLayer(
                    (shortcut): Identity()
                    (layer): Sequential(
                      (0): ResNetConvLayer(
                        (convolution): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (1): ResNetConvLayer(
                        (convolution): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (2): ResNetConvLayer(
                        (convolution): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): Identity()
                      )
                    )
                    (activation): ReLU()
                  )
                )
              )
              (1): ResNetStage(
                (layers): Sequential(
                  (0): ResNetBottleNeckLayer(
                    (shortcut): ResNetShortCut(
                      (convolution): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)
                      (normalization): DetrFrozenBatchNorm2d()
                    )
                    (layer): Sequential(
                      (0): ResNetConvLayer(
                        (convolution): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (1): ResNetConvLayer(
                        (convolution): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (2): ResNetConvLayer(
                        (convolution): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): Identity()
                      )
                    )
                    (activation): ReLU()
                  )
                  (1): ResNetBottleNeckLayer(
                    (shortcut): Identity()
                    (layer): Sequential(
                      (0): ResNetConvLayer(
                        (convolution): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (1): ResNetConvLayer(
                        (convolution): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (2): ResNetConvLayer(
                        (convolution): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): Identity()
                      )
                    )
                    (activation): ReLU()
                  )
                  (2): ResNetBottleNeckLayer(
                    (shortcut): Identity()
                    (layer): Sequential(
                      (0): ResNetConvLayer(
                        (convolution): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (1): ResNetConvLayer(
                        (convolution): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (2): ResNetConvLayer(
                        (convolution): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): Identity()
                      )
                    )
                    (activation): ReLU()
                  )
                  (3): ResNetBottleNeckLayer(
                    (shortcut): Identity()
                    (layer): Sequential(
                      (0): ResNetConvLayer(
                        (convolution): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (1): ResNetConvLayer(
                        (convolution): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (2): ResNetConvLayer(
                        (convolution): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): Identity()
                      )
                    )
                    (activation): ReLU()
                  )
                )
              )
              (2): ResNetStage(
                (layers): Sequential(
                  (0): ResNetBottleNeckLayer(
                    (shortcut): ResNetShortCut(
                      (convolution): Conv2d(512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)
                      (normalization): DetrFrozenBatchNorm2d()
                    )
                    (layer): Sequential(
                      (0): ResNetConvLayer(
                        (convolution): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (1): ResNetConvLayer(
                        (convolution): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (2): ResNetConvLayer(
                        (convolution): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): Identity()
                      )
                    )
                    (activation): ReLU()
                  )
                  (1): ResNetBottleNeckLayer(
                    (shortcut): Identity()
                    (layer): Sequential(
                      (0): ResNetConvLayer(
                        (convolution): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (1): ResNetConvLayer(
                        (convolution): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (2): ResNetConvLayer(
                        (convolution): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): Identity()
                      )
                    )
                    (activation): ReLU()
                  )
                  (2): ResNetBottleNeckLayer(
                    (shortcut): Identity()
                    (layer): Sequential(
                      (0): ResNetConvLayer(
                        (convolution): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (1): ResNetConvLayer(
                        (convolution): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (2): ResNetConvLayer(
                        (convolution): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): Identity()
                      )
                    )
                    (activation): ReLU()
                  )
                  (3): ResNetBottleNeckLayer(
                    (shortcut): Identity()
                    (layer): Sequential(
                      (0): ResNetConvLayer(
                        (convolution): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (1): ResNetConvLayer(
                        (convolution): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (2): ResNetConvLayer(
                        (convolution): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): Identity()
                      )
                    )
                    (activation): ReLU()
                  )
                  (4): ResNetBottleNeckLayer(
                    (shortcut): Identity()
                    (layer): Sequential(
                      (0): ResNetConvLayer(
                        (convolution): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (1): ResNetConvLayer(
                        (convolution): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (2): ResNetConvLayer(
                        (convolution): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): Identity()
                      )
                    )
                    (activation): ReLU()
                  )
                  (5): ResNetBottleNeckLayer(
                    (shortcut): Identity()
                    (layer): Sequential(
                      (0): ResNetConvLayer(
                        (convolution): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (1): ResNetConvLayer(
                        (convolution): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (2): ResNetConvLayer(
                        (convolution): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): Identity()
                      )
                    )
                    (activation): ReLU()
                  )
                )
              )
              (3): ResNetStage(
                (layers): Sequential(
                  (0): ResNetBottleNeckLayer(
                    (shortcut): ResNetShortCut(
                      (convolution): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False)
                      (normalization): DetrFrozenBatchNorm2d()
                    )
                    (layer): Sequential(
                      (0): ResNetConvLayer(
                        (convolution): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (1): ResNetConvLayer(
                        (convolution): Conv2d(512, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (2): ResNetConvLayer(
                        (convolution): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): Identity()
                      )
                    )
                    (activation): ReLU()
                  )
                  (1): ResNetBottleNeckLayer(
                    (shortcut): Identity()
                    (layer): Sequential(
                      (0): ResNetConvLayer(
                        (convolution): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (1): ResNetConvLayer(
                        (convolution): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (2): ResNetConvLayer(
                        (convolution): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): Identity()
                      )
                    )
                    (activation): ReLU()
                  )
                  (2): ResNetBottleNeckLayer(
                    (shortcut): Identity()
                    (layer): Sequential(
                      (0): ResNetConvLayer(
                        (convolution): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (1): ResNetConvLayer(
                        (convolution): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): ReLU()
                      )
                      (2): ResNetConvLayer(
                        (convolution): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
                        (normalization): DetrFrozenBatchNorm2d()
                        (activation): Identity()
                      )
                    )
                    (activation): ReLU()
                  )
                )
              )
            )
          )
        )
      )
      (position_embedding): DetrSinePositionEmbedding()
    )
    (input_projection): Conv2d(2048, 256, kernel_size=(1, 1), stride=(1, 1))
    (query_position_embeddings): Embedding(100, 256)
    (encoder): DetrEncoder(
      (layers): ModuleList(
        (0): DetrEncoderLayer(
          (self_attn): DetrAttention(
            (k_proj): Linear(in_features=256, out_features=256, bias=True)
            (v_proj): Linear(in_features=256, out_features=256, bias=True)
            (q_proj): Linear(in_features=256, out_features=256, bias=True)
            (out_proj): Linear(in_features=256, out_features=256, bias=True)
          )
          (self_attn_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
          (activation_fn): ReLU()
          (fc1): Linear(in_features=256, out_features=2048, bias=True)
          (fc2): Linear(in_features=2048, out_features=256, bias=True)
          (final_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
        )
        (1): DetrEncoderLayer(
          (self_attn): DetrAttention(
            (k_proj): Linear(in_features=256, out_features=256, bias=True)
            (v_proj): Linear(in_features=256, out_features=256, bias=True)
            (q_proj): Linear(in_features=256, out_features=256, bias=True)
            (out_proj): Linear(in_features=256, out_features=256, bias=True)
          )
          (self_attn_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
          (activation_fn): ReLU()
          (fc1): Linear(in_features=256, out_features=2048, bias=True)
          (fc2): Linear(in_features=2048, out_features=256, bias=True)
          (final_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
        )
        (2): DetrEncoderLayer(
          (self_attn): DetrAttention(
            (k_proj): Linear(in_features=256, out_features=256, bias=True)
            (v_proj): Linear(in_features=256, out_features=256, bias=True)
            (q_proj): Linear(in_features=256, out_features=256, bias=True)
            (out_proj): Linear(in_features=256, out_features=256, bias=True)
          )
          (self_attn_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
          (activation_fn): ReLU()
          (fc1): Linear(in_features=256, out_features=2048, bias=True)
          (fc2): Linear(in_features=2048, out_features=256, bias=True)
          (final_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
        )
        (3): DetrEncoderLayer(
          (self_attn): DetrAttention(
            (k_proj): Linear(in_features=256, out_features=256, bias=True)
            (v_proj): Linear(in_features=256, out_features=256, bias=True)
            (q_proj): Linear(in_features=256, out_features=256, bias=True)
            (out_proj): Linear(in_features=256, out_features=256, bias=True)
          )
          (self_attn_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
          (activation_fn): ReLU()
          (fc1): Linear(in_features=256, out_features=2048, bias=True)
          (fc2): Linear(in_features=2048, out_features=256, bias=True)
          (final_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
        )
        (4): DetrEncoderLayer(
          (self_attn): DetrAttention(
            (k_proj): Linear(in_features=256, out_features=256, bias=True)
            (v_proj): Linear(in_features=256, out_features=256, bias=True)
            (q_proj): Linear(in_features=256, out_features=256, bias=True)
            (out_proj): Linear(in_features=256, out_features=256, bias=True)
          )
          (self_attn_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
          (activation_fn): ReLU()
          (fc1): Linear(in_features=256, out_features=2048, bias=True)
          (fc2): Linear(in_features=2048, out_features=256, bias=True)
          (final_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
        )
        (5): DetrEncoderLayer(
          (self_attn): DetrAttention(
            (k_proj): Linear(in_features=256, out_features=256, bias=True)
            (v_proj): Linear(in_features=256, out_features=256, bias=True)
            (q_proj): Linear(in_features=256, out_features=256, bias=True)
            (out_proj): Linear(in_features=256, out_features=256, bias=True)
          )
          (self_attn_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
          (activation_fn): ReLU()
          (fc1): Linear(in_features=256, out_features=2048, bias=True)
          (fc2): Linear(in_features=2048, out_features=256, bias=True)
          (final_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
        )
      )
    )
    (decoder): DetrDecoder(
      (layers): ModuleList(
        (0): DetrDecoderLayer(
          (self_attn): DetrAttention(
            (k_proj): Linear(in_features=256, out_features=256, bias=True)
            (v_proj): Linear(in_features=256, out_features=256, bias=True)
            (q_proj): Linear(in_features=256, out_features=256, bias=True)
            (out_proj): Linear(in_features=256, out_features=256, bias=True)
          )
          (activation_fn): ReLU()
          (self_attn_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
          (encoder_attn): DetrAttention(
            (k_proj): Linear(in_features=256, out_features=256, bias=True)
            (v_proj): Linear(in_features=256, out_features=256, bias=True)
            (q_proj): Linear(in_features=256, out_features=256, bias=True)
            (out_proj): Linear(in_features=256, out_features=256, bias=True)
          )
          (encoder_attn_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
          (fc1): Linear(in_features=256, out_features=2048, bias=True)
          (fc2): Linear(in_features=2048, out_features=256, bias=True)
          (final_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
        )
        (1): DetrDecoderLayer(
          (self_attn): DetrAttention(
            (k_proj): Linear(in_features=256, out_features=256, bias=True)
            (v_proj): Linear(in_features=256, out_features=256, bias=True)
            (q_proj): Linear(in_features=256, out_features=256, bias=True)
            (out_proj): Linear(in_features=256, out_features=256, bias=True)
          )
          (activation_fn): ReLU()
          (self_attn_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
          (encoder_attn): DetrAttention(
            (k_proj): Linear(in_features=256, out_features=256, bias=True)
            (v_proj): Linear(in_features=256, out_features=256, bias=True)
            (q_proj): Linear(in_features=256, out_features=256, bias=True)
            (out_proj): Linear(in_features=256, out_features=256, bias=True)
          )
          (encoder_attn_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
          (fc1): Linear(in_features=256, out_features=2048, bias=True)
          (fc2): Linear(in_features=2048, out_features=256, bias=True)
          (final_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
        )
        (2): DetrDecoderLayer(
          (self_attn): DetrAttention(
            (k_proj): Linear(in_features=256, out_features=256, bias=True)
            (v_proj): Linear(in_features=256, out_features=256, bias=True)
            (q_proj): Linear(in_features=256, out_features=256, bias=True)
            (out_proj): Linear(in_features=256, out_features=256, bias=True)
          )
          (activation_fn): ReLU()
          (self_attn_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
          (encoder_attn): DetrAttention(
            (k_proj): Linear(in_features=256, out_features=256, bias=True)
            (v_proj): Linear(in_features=256, out_features=256, bias=True)
            (q_proj): Linear(in_features=256, out_features=256, bias=True)
            (out_proj): Linear(in_features=256, out_features=256, bias=True)
          )
          (encoder_attn_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
          (fc1): Linear(in_features=256, out_features=2048, bias=True)
          (fc2): Linear(in_features=2048, out_features=256, bias=True)
          (final_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
        )
        (3): DetrDecoderLayer(
          (self_attn): DetrAttention(
            (k_proj): Linear(in_features=256, out_features=256, bias=True)
            (v_proj): Linear(in_features=256, out_features=256, bias=True)
            (q_proj): Linear(in_features=256, out_features=256, bias=True)
            (out_proj): Linear(in_features=256, out_features=256, bias=True)
          )
          (activation_fn): ReLU()
          (self_attn_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
          (encoder_attn): DetrAttention(
            (k_proj): Linear(in_features=256, out_features=256, bias=True)
            (v_proj): Linear(in_features=256, out_features=256, bias=True)
            (q_proj): Linear(in_features=256, out_features=256, bias=True)
            (out_proj): Linear(in_features=256, out_features=256, bias=True)
          )
          (encoder_attn_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
          (fc1): Linear(in_features=256, out_features=2048, bias=True)
          (fc2): Linear(in_features=2048, out_features=256, bias=True)
          (final_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
        )
        (4): DetrDecoderLayer(
          (self_attn): DetrAttention(
            (k_proj): Linear(in_features=256, out_features=256, bias=True)
            (v_proj): Linear(in_features=256, out_features=256, bias=True)
            (q_proj): Linear(in_features=256, out_features=256, bias=True)
            (out_proj): Linear(in_features=256, out_features=256, bias=True)
          )
          (activation_fn): ReLU()
          (self_attn_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
          (encoder_attn): DetrAttention(
            (k_proj): Linear(in_features=256, out_features=256, bias=True)
            (v_proj): Linear(in_features=256, out_features=256, bias=True)
            (q_proj): Linear(in_features=256, out_features=256, bias=True)
            (out_proj): Linear(in_features=256, out_features=256, bias=True)
          )
          (encoder_attn_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
          (fc1): Linear(in_features=256, out_features=2048, bias=True)
          (fc2): Linear(in_features=2048, out_features=256, bias=True)
          (final_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
        )
        (5): DetrDecoderLayer(
          (self_attn): DetrAttention(
            (k_proj): Linear(in_features=256, out_features=256, bias=True)
            (v_proj): Linear(in_features=256, out_features=256, bias=True)
            (q_proj): Linear(in_features=256, out_features=256, bias=True)
            (out_proj): Linear(in_features=256, out_features=256, bias=True)
          )
          (activation_fn): ReLU()
          (self_attn_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
          (encoder_attn): DetrAttention(
            (k_proj): Linear(in_features=256, out_features=256, bias=True)
            (v_proj): Linear(in_features=256, out_features=256, bias=True)
            (q_proj): Linear(in_features=256, out_features=256, bias=True)
            (out_proj): Linear(in_features=256, out_features=256, bias=True)
          )
          (encoder_attn_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
          (fc1): Linear(in_features=256, out_features=2048, bias=True)
          (fc2): Linear(in_features=2048, out_features=256, bias=True)
          (final_layer_norm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
        )
      )
      (layernorm): LayerNorm((256,), eps=1e-05, elementwise_affine=True)
    )
  )
  (class_labels_classifier): Linear(in_features=256, out_features=92, bias=True)
  (bbox_predictor): DetrMLPPredictionHead(
    (layers): ModuleList(
      (0): Linear(in_features=256, out_features=256, bias=True)
      (1): Linear(in_features=256, out_features=256, bias=True)
      (2): Linear(in_features=256, out_features=4, bias=True)
    )
  )
)

 

 

 

 

2. 특정 Layer만을 추출.

2-1.  backbone 모델 추출.

► backbone model만을 추출하고 싶다면 아래와 같이하면 된다.

model_DETR.model.backbone

→ 추출 후 출력 결과

DetrConvModel(
  (conv_encoder): DetrConvEncoder(
    (model): ResNetBackbone(
      (embedder): ResNetEmbeddings(
        (embedder): ResNetConvLayer(
          (convolution): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)
          (normalization): DetrFrozenBatchNorm2d()
          (activation): ReLU()
        )
        (pooler): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
      )
      (encoder): ResNetEncoder(
        (stages): ModuleList(
          (0): ResNetStage(
            (layers): Sequential(
              (0): ResNetBottleNeckLayer(
                (shortcut): ResNetShortCut(
                  (convolution): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
                  (normalization): DetrFrozenBatchNorm2d()
                )
                (layer): Sequential(
                  (0): ResNetConvLayer(
                    (convolution): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (1): ResNetConvLayer(
                    (convolution): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (2): ResNetConvLayer(
                    (convolution): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): Identity()
                  )
                )
                (activation): ReLU()
              )
              (1): ResNetBottleNeckLayer(
                (shortcut): Identity()
                (layer): Sequential(
                  (0): ResNetConvLayer(
                    (convolution): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (1): ResNetConvLayer(
                    (convolution): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (2): ResNetConvLayer(
                    (convolution): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): Identity()
                  )
                )
                (activation): ReLU()
              )
              (2): ResNetBottleNeckLayer(
                (shortcut): Identity()
                (layer): Sequential(
                  (0): ResNetConvLayer(
                    (convolution): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (1): ResNetConvLayer(
                    (convolution): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (2): ResNetConvLayer(
                    (convolution): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): Identity()
                  )
                )
                (activation): ReLU()
              )
            )
          )
          (1): ResNetStage(
            (layers): Sequential(
              (0): ResNetBottleNeckLayer(
                (shortcut): ResNetShortCut(
                  (convolution): Conv2d(256, 512, kernel_size=(1, 1), stride=(2, 2), bias=False)
                  (normalization): DetrFrozenBatchNorm2d()
                )
                (layer): Sequential(
                  (0): ResNetConvLayer(
                    (convolution): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (1): ResNetConvLayer(
                    (convolution): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (2): ResNetConvLayer(
                    (convolution): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): Identity()
                  )
                )
                (activation): ReLU()
              )
              (1): ResNetBottleNeckLayer(
                (shortcut): Identity()
                (layer): Sequential(
                  (0): ResNetConvLayer(
                    (convolution): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (1): ResNetConvLayer(
                    (convolution): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (2): ResNetConvLayer(
                    (convolution): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): Identity()
                  )
                )
                (activation): ReLU()
              )
              (2): ResNetBottleNeckLayer(
                (shortcut): Identity()
                (layer): Sequential(
                  (0): ResNetConvLayer(
                    (convolution): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (1): ResNetConvLayer(
                    (convolution): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (2): ResNetConvLayer(
                    (convolution): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): Identity()
                  )
                )
                (activation): ReLU()
              )
              (3): ResNetBottleNeckLayer(
                (shortcut): Identity()
                (layer): Sequential(
                  (0): ResNetConvLayer(
                    (convolution): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (1): ResNetConvLayer(
                    (convolution): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (2): ResNetConvLayer(
                    (convolution): Conv2d(128, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): Identity()
                  )
                )
                (activation): ReLU()
              )
            )
          )
          (2): ResNetStage(
            (layers): Sequential(
              (0): ResNetBottleNeckLayer(
                (shortcut): ResNetShortCut(
                  (convolution): Conv2d(512, 1024, kernel_size=(1, 1), stride=(2, 2), bias=False)
                  (normalization): DetrFrozenBatchNorm2d()
                )
                (layer): Sequential(
                  (0): ResNetConvLayer(
                    (convolution): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (1): ResNetConvLayer(
                    (convolution): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (2): ResNetConvLayer(
                    (convolution): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): Identity()
                  )
                )
                (activation): ReLU()
              )
              (1): ResNetBottleNeckLayer(
                (shortcut): Identity()
                (layer): Sequential(
                  (0): ResNetConvLayer(
                    (convolution): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (1): ResNetConvLayer(
                    (convolution): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (2): ResNetConvLayer(
                    (convolution): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): Identity()
                  )
                )
                (activation): ReLU()
              )
              (2): ResNetBottleNeckLayer(
                (shortcut): Identity()
                (layer): Sequential(
                  (0): ResNetConvLayer(
                    (convolution): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (1): ResNetConvLayer(
                    (convolution): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (2): ResNetConvLayer(
                    (convolution): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): Identity()
                  )
                )
                (activation): ReLU()
              )
              (3): ResNetBottleNeckLayer(
                (shortcut): Identity()
                (layer): Sequential(
                  (0): ResNetConvLayer(
                    (convolution): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (1): ResNetConvLayer(
                    (convolution): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (2): ResNetConvLayer(
                    (convolution): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): Identity()
                  )
                )
                (activation): ReLU()
              )
              (4): ResNetBottleNeckLayer(
                (shortcut): Identity()
                (layer): Sequential(
                  (0): ResNetConvLayer(
                    (convolution): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (1): ResNetConvLayer(
                    (convolution): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (2): ResNetConvLayer(
                    (convolution): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): Identity()
                  )
                )
                (activation): ReLU()
              )
              (5): ResNetBottleNeckLayer(
                (shortcut): Identity()
                (layer): Sequential(
                  (0): ResNetConvLayer(
                    (convolution): Conv2d(1024, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (1): ResNetConvLayer(
                    (convolution): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (2): ResNetConvLayer(
                    (convolution): Conv2d(256, 1024, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): Identity()
                  )
                )
                (activation): ReLU()
              )
            )
          )
          (3): ResNetStage(
            (layers): Sequential(
              (0): ResNetBottleNeckLayer(
                (shortcut): ResNetShortCut(
                  (convolution): Conv2d(1024, 2048, kernel_size=(1, 1), stride=(2, 2), bias=False)
                  (normalization): DetrFrozenBatchNorm2d()
                )
                (layer): Sequential(
                  (0): ResNetConvLayer(
                    (convolution): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (1): ResNetConvLayer(
                    (convolution): Conv2d(512, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (2): ResNetConvLayer(
                    (convolution): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): Identity()
                  )
                )
                (activation): ReLU()
              )
              (1): ResNetBottleNeckLayer(
                (shortcut): Identity()
                (layer): Sequential(
                  (0): ResNetConvLayer(
                    (convolution): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (1): ResNetConvLayer(
                    (convolution): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (2): ResNetConvLayer(
                    (convolution): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): Identity()
                  )
                )
                (activation): ReLU()
              )
              (2): ResNetBottleNeckLayer(
                (shortcut): Identity()
                (layer): Sequential(
                  (0): ResNetConvLayer(
                    (convolution): Conv2d(2048, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (1): ResNetConvLayer(
                    (convolution): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): ReLU()
                  )
                  (2): ResNetConvLayer(
                    (convolution): Conv2d(512, 2048, kernel_size=(1, 1), stride=(1, 1), bias=False)
                    (normalization): DetrFrozenBatchNorm2d()
                    (activation): Identity()
                  )
                )
                (activation): ReLU()
              )
            )
          )
        )
      )
    )
  )
  (position_embedding): DetrSinePositionEmbedding()
)

 

2-2.  구체적인 특정 layer 만 추출.

→ key값 이 ' .숫자 ' 로 되어있는 부분에 대해서는 ' [숫자] ' 로 표현하면 됨.

layer_2_conv_weight = model_DETR.model.backbone.conv_encoder.model.encoder.stages[0].layers[0].layer[2]
print(layer_2_conv_weight)

 

→ 출력 결과

ResNetConvLayer(
  (convolution): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (normalization): DetrFrozenBatchNorm2d()
  (activation): Identity()
)

 

 

2-3.  구체적인 특정 layer들을 묶음으로 추출.

 ( DETR 예시로는 너무 길어서 짧은 resnet18로 설명을 진행함.)

 

→ 필요한 부분만 추출을 한 뒤, nn.Sequential 로 묶어주면 됨.

import torchvision
import torch
import torch.nn as nn

model_resnet=torchvision.models.resnet18(pretrained=True)



extracted_layers = nn.Sequential(
    model_resnet.conv1,
    model_resnet.bn1,
    model_resnet.relu,
    model_resnet.maxpool,
    model_resnet.layer1
)

extracted_layers

 

 

  출력 결과

Sequential(
  (0): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)
  (1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  (2): ReLU(inplace=True)
  (3): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
  (4): Sequential(
    (0): BasicBlock(
      (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
      (relu): ReLU(inplace=True)
      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    )
    (1): BasicBlock(
      (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
      (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
      (relu): ReLU(inplace=True)
      (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
      (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    )
  )
)

 

 

► 응용 - 추출 후 본인이 만든 layer를 추가하고 싶을 때.

 

import torch.nn as nn
import torchvision
import torch


model_resnet=torchvision.models.resnet18(pretrained=True)

class MyModel(nn.Module):
    def __init__(self):
        super(MyModel, self).__init__()
        self.extracted_layers = nn.Sequential(
            model_resnet.conv1,
            model_resnet.bn1,
            model_resnet.relu,
            model_resnet.maxpool,
            model_resnet.layer1
            )
        
        self.avgpool = nn.AdaptiveAvgPool2d((1, 1))

        self.fc = nn.Linear(64, 10)


    def forward(self, x):
        x = self.extracted_layers(x)
        x = self.avgpool(x)
        x = self.fc(x)
        return x
    

model = MyModel()
model

 

→ 출력 결과, 맨 아래 ( avgpool, fc 가 추가됨을 알 수 있다.)

MyModel(
  (extracted_layers): Sequential(
    (0): Conv2d(3, 64, kernel_size=(7, 7), stride=(2, 2), padding=(3, 3), bias=False)
    (1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU(inplace=True)
    (3): MaxPool2d(kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
    (4): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
        (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
        (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
      )
    )
  )
  (avgpool): AdaptiveAvgPool2d(output_size=(1, 1))
  (fc): Linear(in_features=64, out_features=10, bias=True)
)

 

Comments