pytorch, tensorflow

[pytorch] torch에서 parameter 접근하기

2021. 3. 19. 20:40
목차
  1. 1. torch.nn.Module.parameters()
  2. 2. torch.nn.Module.named_parameters()

nn.Linear()등으로 정의한 파라미터 접근은 parameters(), named_parameterss()으로 가능하다. 정확히는 layer가 모두 nn.Module()을 상속받으므로 Module에 정의되어 있는 parameter 접근 방법을 사용하면 된다.

 

1. torch.nn.Module.parameters()

parameters()는 layer 이름을 제외한 parameter값에 대한 iterator를 준다.

layer = torch.nn.Linear(10,3)
layer
>> Linear(in_features=10, out_features=3, bias=True)

for p in layer.parameters():
	print(p)
    
>> Parameter containing:
   tensor([[-0.2232,  0.0369, -0.2201, -0.1385, -0.1104,  0.2852,  0.0249, -0.0295,
             0.0382,  0.2847],
           [-0.0430,  0.3032,  0.1541, -0.3093,  0.1008, -0.3134, -0.1431,  0.0280,
             0.2178,  0.2094],
           [ 0.1900, -0.2386,  0.1099,  0.1769, -0.0338, -0.2079,  0.0816, -0.0180,
            -0.0182,  0.1578]], requires_grad=True)
   Parameter containing:
   tensor([ 0.1549, -0.0628,  0.1692], requires_grad=True)

 

2. torch.nn.Module.named_parameters()

named_parameters()는 (name, parameter) 조합의 tuple iterator를 준다. 이때 출력물은 named_tuple이 아니니 헷갈리지 말자.

for p in layer.named_parameters():
	print(p)
    
>> ('weight', Parameter containing:
    tensor([[-0.2232,  0.0369, -0.2201, -0.1385, -0.1104,  0.2852,  0.0249, -0.0295,
              0.0382,  0.2847],
            [-0.0430,  0.3032,  0.1541, -0.3093,  0.1008, -0.3134, -0.1431,  0.0280,
              0.2178,  0.2094],
            [ 0.1900, -0.2386,  0.1099,  0.1769, -0.0338, -0.2079,  0.0816, -0.0180,
             -0.0182,  0.1578]], requires_grad=True))
    ('bias', Parameter containing:
    tensor([ 0.1549, -0.0628,  0.1692], requires_grad=True))
    
# 이름만 출력    
for name, p in layer.named_parameters():
	print(name)
    
>> weight
   bias

 

728x90
저작자표시 비영리 동일조건 (새창열림)

'pytorch, tensorflow' 카테고리의 다른 글

[PyTorch] Embedding 추가하기  (0) 2022.10.01
[PyTorch] torch.cat(), torch.stack() 비교  (0) 2022.10.01
[pytorch] torch.reshape에 관하여  (0) 2022.07.11
[tensorflow 2.0] model.save, model.save_weights 차이  (0) 2021.04.01
  1. 1. torch.nn.Module.parameters()
  2. 2. torch.nn.Module.named_parameters()
'pytorch, tensorflow' 카테고리의 다른 글
  • [PyTorch] Embedding 추가하기
  • [PyTorch] torch.cat(), torch.stack() 비교
  • [pytorch] torch.reshape에 관하여
  • [tensorflow 2.0] model.save, model.save_weights 차이
Fine애플
Fine애플
이것저것
끄적끄적이것저것
Fine애플
끄적끄적
Fine애플
전체
오늘
어제
  • 분류 전체보기 (167)
    • 논문 및 개념 정리 (27)
    • Pattern Recognition (8)
    • 개발 (57)
    • python 메모 (45)
    • pytorch, tensorflow (5)
    • 알고리즘 (9)
    • Toy Projects (4)
    • 통계이론 (2)
    • Reinforcement Learning (10)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • Docker
  • 알고리즘
  • PyTorch
  • container
  • nlp
  • pandas
  • 개발환경
  • Bert
  • reinforcement learning
  • tensorflow
  • ubuntu
  • transformer
  • GPU
  • 딥러닝
  • miniconda
  • 자연어
  • Probability
  • BigBird
  • python
  • 언어모델

최근 댓글

최근 글

hELLO · Designed By 정상우.
Fine애플
[pytorch] torch에서 parameter 접근하기
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.