rnn tensorflow 예제

sparse_softmax_cross_entropy_with_logits에 대한 API 호출을 사용하면 소프트맥스를 내부적으로 자동으로 계산한 다음 교차 엔트로피를 계산합니다. 이 예제에서는 클래스가 상호 배타적입니다(0 또는 1)은 “Sparse-softmax”를 사용하는 이유이며 API에서 자세히 확인할 수 있습니다. 사용법은 모양 [batch_size, num_class] 및 모양 레이블 [batch_size]입니다. 이제 LSTM 셀을 더 잘 이해하게 되었으므로 그림 2의 LSTM 네트워크 아키텍처 예제를 살펴보겠습니다. 가장 간단하게 설명하기 쉬운 예는 아마도 이전 값이 주어진 다음 값을 예측하는 숫자의 시간계일 것입니다. 모든 시간 단계에서 RNN에 대한 입력은 현재 값뿐만 아니라 네트워크가 이전 시간 단계에서 “본”을 나타내는 상태 벡터입니다. 이 상태 벡터는 RNN의 인코딩된 메모리이며 처음에는 0으로 설정됩니다. 이 코드 예제에서는 멋진 캡슐화와 더 나은 코드를 갖기 위해 Python 클래스에서 모델을 빌드하겠습니다. 첫 번째 클래스는 입력 데이터를 포함하는 간단한 클래스입니다 : 우리는 이전과 같은 가중치 / 바이어스 사전을 가지고 있지만, 우리는 우리의 입력 데이터에 대한 몇 가지 수정에 도착, x. 우리는 이일을하고 있는 것은 순전히 TensorFlow가 자신의 rnn에 맞게 원하는 구조를 만족시키기 위해 셀 모델.

여기서 한 가지 혼란스러운 점은 아마도 우리의 전치 작업일 것입니다. TensorFlow와 같은 작업이 있을 때마다 대화형 세션에서 값을 사용하여 재생하거나 Numpy를 사용하여 간단한 예제를 만들 수 있습니다. 예를 들어 다음 Numpy 코드를 사용할 수 있습니다. 우리가 해야 할 또 다른 변화는 우리가 calcualte 정확도 때, 어디 여기 각 예제 는 다시, chunk_size에 의해 n_chunks 로, 첫 번째 차원은 단지 -1, batch_size, 때문에 우리는 단지 단일 이미지의 정확도 확인 하 고 있기 때문에 이미지의 전체 배치를 교육하는 대신. 아래 그림에서 볼 수 있듯이 배치의 열 (축 = 1)을 파이썬 목록으로 압축 해제하여 수행됩니다. RNN은 동시에 타임 시리즈의 다른 부분에 대한 교육을 받을 것입니다. 현재 배치 예제에서 4~6단계, 16~18단계 및 28~30단계입니다. 변수 이름 “plural”_”시리즈”를 사용하는 이유는 변수가 각 단계에서 여러 항목이 있는 타임시리즈를 나타내는 목록임을 강조하기 위해서입니다. RNN널리 텍스트 분석, 이미지 캡션, 감정 분석 및 기계 번역에 사용됩니다.