반응형
RNN의 파라미터 개수와 토큰 길이의 관계¶
- RNN의 파라미터 개수는 토큰 길이(sequence length)와 관계 없습니다.
- 아래 예시를 통해 확인 가능합니다.
In [1]:
# 패키지 불러오기
import torch
import torch.nn as nn
In [2]:
# 파이토치 RNN 모델을 구성하기 위해 토큰의
# 백터 길이(feature_length),
# 히든 사이즈(hidden_size),
# 레이어 개수(num_of_layers)
# 를 설정합니다.
feature_length = 3
hidden_size = 1
num_of_layers = 1
# RNN 레이터 생성
rnn = nn.RNN(feature_length, hidden_size, num_of_layers)
# 파라미터 관찰
rnn.all_weights
Out[2]:
[[Parameter containing: tensor([[0.4050, 0.8479, 0.4875]], requires_grad=True), Parameter containing: tensor([[-0.1538]], requires_grad=True), Parameter containing: tensor([0.9577], requires_grad=True), Parameter containing: tensor([0.6209], requires_grad=True)]]
- 토큰 길이(sequence_length)를 변경에 따른 모델 적용 결과
In [3]:
# 입력데이터를 생성하기 위해
# 배치 크기(batch_size),
# 토큰 길이(sequence_length),
# 를 설정 합니다.
batch_size = 1
sequence_length = 1
x = torch.randn(batch_size, sequence_length, feature_length)
rnn(x)
Out[3]:
(tensor([[[0.9586]]], grad_fn=<StackBackward0>), tensor([[[0.9586]]], grad_fn=<StackBackward0>))
In [4]:
batch_size = 1
sequence_length = 5
x = torch.randn(batch_size, sequence_length, feature_length)
rnn(x) # 토큰 길이에 따라 순환의 개수만 늘어 날 뿐 모델에 대한 어떤한 조작도 하지 않았기 때문에 파라미터 개수에 변화가 없음을 확인할 수 있습니다.
Out[4]:
(tensor([[[0.9303], [0.9844], [0.9721], [0.9843], [0.9982]]], grad_fn=<StackBackward0>), tensor([[[0.9303], [0.9844], [0.9721], [0.9843], [0.9982]]], grad_fn=<StackBackward0>))
In [5]:
# 당연한 말이지만, 파라미터 개수에 변화가 없습니다.
rnn.all_weights
Out[5]:
[[Parameter containing: tensor([[0.4050, 0.8479, 0.4875]], requires_grad=True), Parameter containing: tensor([[-0.1538]], requires_grad=True), Parameter containing: tensor([0.9577], requires_grad=True), Parameter containing: tensor([0.6209], requires_grad=True)]]
반응형
'python' 카테고리의 다른 글
파이썬 string to datetime or datetime to string (0) | 2023.05.20 |
---|---|
pytorch tensor.new, 파이토치 tensor.new new_zeros(), new_ones(), new_full() (0) | 2023.05.18 |
파이썬 리스트를 tsv 로 저장 (0) | 2023.05.10 |
파이썬 assert 사용법 (0) | 2023.05.10 |
파이썬 홈 디렉토리 경로 확장 법 os.path.expanduser (0) | 2023.05.09 |
댓글