본문 바로가기
Python Library/PyTorch

[PyTorch] 모델 매개변수 (Parameter)

by goatlab 2022. 1. 13.
728x90
반응형
SMALL

모델 매개변수 (Parameter)

 

신경망 내부의 많은 계층들은 매개변수화 (parameterize)된다. 즉, 학습 중에 최적화되는 weight와 bias과 연관지어진다. nn.Module 을 상속하면 모델 객체 내부의 모든 필드들이 자동으로 추적 (track)되며, 모델의 parameters() 및 named_parameters() method로 모든 parameter에 접근할 수 있게 된다. 

 

각 매개변수들을 순회하며 (iterate), 매개변수의 크기와 값을 출력한다.

 

print("Model structure: ", model, "\n\n")

for name, param in model.named_parameters():
    print(f"Layer: {name} | Size: {param.size()} | Values : {param[:2]} \n")

 

Out:

Model structure:  NeuralNetwork(
  (flatten): Flatten(start_dim=1, end_dim=-1)
  (linear_relu_stack): Sequential(
    (0): Linear(in_features=784, out_features=512, bias=True)
    (1): ReLU()
    (2): Linear(in_features=512, out_features=512, bias=True)
    (3): ReLU()
    (4): Linear(in_features=512, out_features=10, bias=True)
  )
)


Layer: linear_relu_stack.0.weight | Size: torch.Size([512, 784]) | Values : tensor([[-0.0022,  0.0268, -0.0294,  ..., -0.0003,  0.0119,  0.0287],
        [-0.0302, -0.0101, -0.0178,  ...,  0.0267,  0.0028,  0.0005]],
       device='cuda:0', grad_fn=<SliceBackward0>)

Layer: linear_relu_stack.0.bias | Size: torch.Size([512]) | Values : tensor([0.0060, 0.0200], device='cuda:0', grad_fn=<SliceBackward0>)

Layer: linear_relu_stack.2.weight | Size: torch.Size([512, 512]) | Values : tensor([[ 0.0271,  0.0029,  0.0394,  ..., -0.0272,  0.0303,  0.0002],
        [-0.0295, -0.0030, -0.0409,  ..., -0.0163, -0.0404, -0.0160]],
       device='cuda:0', grad_fn=<SliceBackward0>)

Layer: linear_relu_stack.2.bias | Size: torch.Size([512]) | Values : tensor([-0.0064, -0.0245], device='cuda:0', grad_fn=<SliceBackward0>)

Layer: linear_relu_stack.4.weight | Size: torch.Size([10, 512]) | Values : tensor([[-0.0007, -0.0037,  0.0023,  ...,  0.0149, -0.0237, -0.0083],
        [ 0.0305,  0.0092, -0.0349,  ..., -0.0014,  0.0030, -0.0152]],
       device='cuda:0', grad_fn=<SliceBackward0>)

Layer: linear_relu_stack.4.bias | Size: torch.Size([10]) | Values : tensor([0.0319, 0.0247], device='cuda:0', grad_fn=<SliceBackward0>)

 

https://tutorials.pytorch.kr/beginner/basics/buildmodel_tutorial.html

 

신경망 모델 구성하기 — PyTorch Tutorials 1.10.0+cu102 documentation

Note Click here to download the full example code 파이토치(PyTorch) 기본 익히기 || 빠른 시작 || 텐서(Tensor) || Dataset과 Dataloader || 변형(Transform) || 신경망 모델 구성하기 || Autograd || 최적화(Optimization) || 모델 저

tutorials.pytorch.kr

 

728x90
반응형
LIST