lab 12-2. Hi Hello RNN

'Hi Hello' 학습하기. 한 문자가 입력되면 계속 다음 문자를 예측하도록 하는 프로그램.Unique character를 뽑아서 인덱스를 붙이고, One hot encoding 처리한다.입력 Dimension은 5(Unique chars), 시퀀스 길이는 위의 그림상 6개, 바로 출력을 하고 싶으면 출력의 Dimension(Hidden value)는 5개(One hot), batch는 문자열 하나밖에 없으니까 1이다.

Cell의 사이즈는 출력값이니까 5가 된다.(rnn_size)

입력 Dimension 5, 시퀀스 길이 6에 맞게 데이터 X를 만들어서 넣어주면 된다.

Input을 정의하고(idx2char), Input을 인덱스로 저장하고(x_data), 그걸 one hot 인코딩된 상태로도 저장한다. 그리고 입력에 맞게 출력되는 ydata를 정의한다.위의 Hidden size 자리에는 input dimension 이 들어가면 된다. (똑같은 값이지만)
Batch size 1이지만 많아도 괜찮으면 None으로 둔다.(X)

sequence_loss 함수 : 각각을 cross entropy 같은걸로 평균을 내면 복잡하니까 tensorflow에서 편리하게 쓰도록 제공하는 함수.
logits : 예측값, target : true data, weight: [1, 1, 1, 1,] 모두가 1(그냥 다 똑같이 생각한다.)
prediction 값 : 예측값을 one hot으로 나타낸 값(softmax와 유사하다.) 위의 그림에서 prediction

학습 과정.
output으로 나온 걸 logits로 사용해서 loss를 계산한다.

one hot의 max 값을 prediction으로 예측해서(0, 1, 2, 3과 같은 숫자) 아래 result_str에서 어떤 문자를 예측했는지 표시한다.

results for ""

    No results matching ""