관리 메뉴

너와 나의 스토리

모두를 위한 딥러닝 - RNN 실습(4) 본문

Data Analysis/Machine learning

모두를 위한 딥러닝 - RNN 실습(4)

노는게제일좋아! 2019. 8. 7. 14:17
반응형

모두를 위한 딥러닝 ML lab12-4: RNN with long sequences: Stacked RNN + Softmax layer 강의 정리&코드

 

전체 코드: https://github.com/hunkim/DeepLearningZeroToAll/blob/master/lab-12-3-char-seq-softmax-only.py

 

 

RNN의 핵심 - Wide & Deep

 

1. MultiRNNCell

 

MultiRNNCell을 이용해서 cell을 쌓아보자

 

원하는 만큼 많이 쌓을 수 있음

 

 

 

cell = rnn.MultiRNNCell([cell] * 2 , state_is_tuple=True)  # [cell]* n에서 n: 몇 개 쌓을 것인가

* states 변수는 층마다 하나의 텐서가 들어 있는 튜플이다. (셀의 마지막 상태 나타냄)

* state_is_tupler=False로 지정하면 states는 열 방향을 ㄸ라 합쳐져서 각 층의 상태를 담고 있는 하나의 텐서가 된다.

 

 

2. softmax

아이디어: 각 출력을 쌓아서 모아주고 이를 softmax로 만들어 준 후, 다시 펼친다.

 

3. loss

RNN에서 나온 output을 바로 logits에 넣으면 안됨

ㄴ 여기에는 activation function이 들어있음

 

softmax를 거쳐서 나온 마지막 값은 activation을 거치지 않은 logit을 입력으로 넣는다

 

4. Training and print results

모든 학습이 끝난 후, 모든 배치들 모아서 결과 출력

 

반응형
Comments