이번 게시물은 RNN을 이용해서
hihello를 출력하는 모델을 만들어 보겠습니다.
One-hot encoding
일단 One-hot encoding을 알아보겠습니다.
컴퓨터는 문자보다는 숫자를 더 잘 처리 할 수 있습니다.
그래서 표현하고자 하는 문자에 숫자를 지정하여 사용하는 방법입니다.
- 각 단어에 고유한 인덱스를 부여합니다.
- 표현하고 싶은 단어의 인덱스의 위치에 1을 부여하고, 다른 단어의 인덱스의 위치에는 0을 부여합니다.
input = hihell = [0, 1, 0, 2, 3, 3]
output = ihello = [1, 0, 2, 3, 3, 4]
Cross Entropy Loss
이 Loss는 Categorical한 output을 가질때 많이 사용하는 Loss Function 입니다.
output이 0.1, 0.2, 0.3, 0.4 가 나오면 가장 가능성이 높은 0.4에 1을 나머지는 0을 곱하는 것이라고 보시면 되겠습니다.
즉, 가장 높은 값의 인덱스 값을 기준으로 각각 곱해주는 것입니다.
조금더 공부해서 포스팅 했습니다.
https://ggongsowon.tistory.com/113?category=965884
Code
Data 만드는 방법 2가지
여기서 np.eye는 numpy에서 지원해주는 함수로 정방행렬을 생성해줍니다.
여기서 rnn은 두개의 output을 도출합니다.
outputs는 말 그대로 결과값이고 _status는 다음 rnn이 있으면 그 rnn에서 사용될 hidden state 입니다.
출처:
https://www.youtube.com/watch?v=35JQdrrIRXQ&list=PLQ28Nx3M4JrhkqBVIXg-i5_CVVoS1UzAv&index=30
'Deep Learning > Pytorch' 카테고리의 다른 글
26_Pytorch_Inception-v2, v3 (미완) (0) | 2021.10.25 |
---|---|
24_Pytorch_MobileNet - 연산량 number of operations (0) | 2021.10.12 |
21_Pytorch_RNN (0) | 2021.10.06 |
20_Pytorch_ResNet (0) | 2021.10.06 |
19_Pytorch_VGG16 (0) | 2021.10.05 |