Programming/인공지능

[딥러닝] RNN에게 hello 학습시키기

mj73 2022. 5. 31. 19:41

RNN을 돌려보는 코드

학습결과 h 다음엔 e가, e다음에는 l이 나오는 것을 예측할 수 있도록 학습시킬 것이다.

import torch
import numpy as np

input_size = 4
hidden_size = 2

h = [1,0,0,0]
e = [0,1,0,0]
l = [0,0,1,0]
o = [0,0,0,1]

input_data_np = np.array([[h,e,l,l,o],
						  [e,o,o,l,l],
                          [l.l,e,e,l]], dtype=np.float32)
input_data = torch.Tensor(input_data_np)
rnn = torch.nn.RNN(input_size, hidden_size) outputs, _status = rnn(input_data)

 

 

위 코드에서 RNN을 실행하는 코드는 단 두 줄이다.

input_data = torch.Tensor(input_data_np)
rnn = torch.nn.RNN(input_size, hidden_size) outputs, _status = rnn(input_data)

 

 

두 줄을 제외한 나머지는 데이터를 준비하는 과정임

input_data에서 input_data shape=(3,5,4)이면 순서대로 3은 배치사이즈, 5는 시퀀스길이, 4는 차원이다.

즉 한번에 입력하는 입력 샘플의 수는 3개,

입력 길이는 5,

4차원

으로 된 데이터라는 의미이다.

 

 

입력데이터와 출력데이터에서 배치사이즈와 시퀀스 랭스는 같아야한다.