tensorflow gru 예제

이 예제에서 사용할 두 가지 기본 TensorFlow 데이터 구조는 자리 표시자 및 변수입니다. 각 실행시 일괄 처리 데이터는 계산 그래프의 “시작 노드”인 자리 표시자에 공급됩니다. 또한 RNN 상태는 이전 실행의 출력에서 저장되는 자리 표시자에서 제공됩니다. 이 게시물에서는 텐서플로우에서 RNN 모델을 사용하여 순차적인 MNIST 문제를 처리함으로써 다음 게시물에서 다룰 사용자 지정 모델에 대한 몇 가지 토대를 마련할 것입니다. 이 게시물에 사용 되는 코드의 기본 프레임 워크는 다음 두 노트북을 기반으로: 그것은 TensorFlow에 대 한 명확 하 고 간결 한 예제를 찾으려는 초보자에 적합. 기존의 `원시` TensorFlow 구현 외에도 최신 TensorFlow API 사례(예: 레이어, 추정기, 데이터 집합 등)도 찾을 수 있습니다. 입력을 자리 표시자(이전에는 X, 현재 X_로 명명)에 전달하기 때문에 다른 (Python) 변수 이름을 사용해야 합니다. 동일한 이름을 사용하면 Tensorflow가 그래프의 투뮤트 시퀀스를 입력으로 대체하고 결과가 변기되지 않습니다. (X_보다 더 구별 가능한 이름을 사용해야 합니다.) 코드 예제에서는 GRU를 테스트하는 데 간단한 작업이 사용됩니다. a$와 $latex b$$latex 두 개의 숫자가 주어지면 $latex c = a + b$의 합계가 계산됩니다.

숫자는 먼저 역비트 문자열로 변환됩니다. 반전은 또한 대부분의 사람들이 두 개의 숫자를 추가하여 할 것입니다. 당신은 숫자에서 오른쪽에서 시작하고 합계가 $latex 10 $보다 큰 경우, 당신은 특정 번호를 수행 (암기). 이 모델은 무엇을 운반해야하는지 배울 수 있습니다. 예를 들어 a = 3$$latex $latex b = 1$를 $latex 수를 고려합니다. 비트 스트링 (길이 3)에서 우리는 = [0, 1, 1]$ 및 $latex b = [0, 0, 1]$를 $latex. 역비트 문자열 표현에서는 $latex =[1, 1, 0]$ 및 $latex b = [1, 0, 0]$를 가지고 있습니다. 이 숫자의 합은 $latex c = [0, 0, 1]$의 역비트 스트링 표현입니다. 이것은 일반 비트 문자열 표현에서 [1, 0, 0]$$latex $latex 4$에 해당합니다. 이러한 단계는 코드에서 자동으로 수행되는 모든 단계입니다. MNIST 데이터 집합의 모든 예제는 28×28 이미지입니다. 모델의 핵심은 한 번에 한 단어를 처리하고 문장의 다음 단어에 대한 가능한 값의 확률을 계산하는 LSTM 셀로 구성됩니다.

네트워크의 메모리 상태는 0의 벡터로 초기화되고 각 단어를 읽은 후 업데이트됩니다. 계산상의 이유로, 우리는 크기 batch_size의 미니 일괄 처리로 데이터를 처리합니다. 이 예제에서는 current_batch_of_words가 단어의 “문장”과 일치하지 않는다는 점에 유의해야 합니다.