파이썬 rnn 예제

이 네트워크를 구성하는 방법에는 여러 가지가 있으며 전자 필기장에는 여러 가지 방법이 있습니다. 예를 들어 서로 겹쳐진 두 개의 LSTM 레이어, 양방향에서 시퀀스를 처리하는 양방향 LSTM 레이어 또는 더 많은 밀도 레이어를 사용할 수 있습니다. 나는 잘 작동 하기 위해 위의 설정을 발견. Line 42: 100,000개 이상의 교육 예제를 반복하고 있는 알고리즘이 이를 복제할 수 있습니까? 가장 먼저 떠오르는 기술은 신경망(NN)입니다. 그러나 전통적인 NN은 불행히도이 작업을 수행 할 수 없습니다. 동영상에서 다음에 올 내용을 예측하고자 하는 예를 들어 보겠습니다. 기존의 신경망은 정확한 결과를 생성하는 데 어려움을 겪을 것입니다. 구현하는 것은 그리 어렵지 않지만 함수 sequence_loss_by_example를 이미 사용할 수 있으므로 여기에서 사용할 수 있습니다. 단어 수는 매개 변수로 남아 있습니다. 여기에 표시된 예제에 50을 사용하므로 네트워크에 50개의 단어를 제공하고 51번째 를 예측하도록 교육합니다.

네트워크를 교육하는 다른 방법은 시퀀스의 각 지점에서 다음 단어를 예측하도록 하는 것입니다. 여기서 사용되는 구현이 반드시 최적(허용되는 최상의 솔루션은 없지만 잘 작동)은 아닙니다! 텍스트는 시퀀스 데이터의 또 다른 좋은 예입니다. 주어진 텍스트 다음에 어떤 단어나 구가 오는지 예측할 수 있다는 것은 매우 유용한 자산이 될 수 있습니다. 우리는 우리의 모델이 셰익스피어 소네트를 작성하기를 원합니다! 훈련 하는 동안 우리는 위의 표면 플롯에서 파란색 점에 끝날 것 이다 ($w_x=!1, w_{rec}\2$) 그라데이션의 순서에 있을 것 이다 $10^7$. $0.000001$($10^{-6}$)의 작은 학습 률에도 불구하고 $W$의 매개 변수는 현재 위치에서 10 단위 단위로 업데이트되며, 이는 이 예제에서 치명적일 것입니다. 한 가지 방법은 학습 속도를 훨씬 더 낮추는 것이지만 최적화가 낮은 그라데이션 영역에 들어가면 업데이트가 전혀 움직이지 않을 것입니다. TensorFlow LSTM이 여러 데이터 스트림을 한 번에 처리할 수 있는지 알고 계십니까? 예제에서 작업하면 20x4x35x650 입력의 경우 한 번에 4개의 35×650 입력이 있는 것과 같습니다. 나는 4x35x650을 140 × 650으로 변환 할 수 있다는 것을 알고 있지만 4 개의 입력을 한 번에 고려할 수있는 더 우아한 방법이 있는지 궁금했습니다. 특히 좋은 예는 텍스트 시퀀스를 예측하는 것입니다. “한 소녀가 술집에 들어갔는데,`술을 마실 수 있을까?` 하고 물었습니다. 바텐더는 `확실히 {}”라고 말했다. 예를 들어 위의 문자열에서 {} 기호를 채울 수 있는 옵션(예: “miss”, “ma`am” 등)에 대한 많은 옵션이 있습니다.