목차
- 모델 로드
- 특정 Layer 만을 추출
- backbone 모델추출
- 구체적인 특정 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)
)
'인공지능 (기본 딥러닝) > 딥러닝 및 파이토치 기타 정리' 카테고리의 다른 글
[import os] 파일 호출, 삭제, 생성 명령어. (0) | 2024.05.26 |
---|---|
[Pytorch, Huggingface] Pretrained Model 의 특정 Layer 만 Freeze 하기 (0) | 2024.04.28 |
[Huggingface] 가중치 없이 모델 로드 및 모델 구조 변경 (0) | 2024.04.23 |
[Convolution 의 Group 파라미터] torch.nn.Conv3d(group=1) (0) | 2024.02.03 |
[파이썬 디버거] import pdb;pdb.set_trace() (0) | 2023.12.27 |