답변:
Keras 의 레이어에 공급하려는 개의 행과 개의 열이있는 시계열 데이터가 있다고 가정 합니다. 이를 RNN에 공급하기 전에 이전 데이터를 3D 텐서로 재구성해야합니다. 따라서 그것은 됩니다.SimpleRNN(200, return_sequence=True)
이미지는 https://colah.github.io/posts/2015-08-Understanding-LSTM 에서 가져옵니다.
RNN에서 열 ( "700 열")은 RNN의 시간 단계입니다. 데이터는 까지 처리됩니다 . RNN에 데이터를 공급 한 후, 이제 (700 개)의 출력이 에 하지 에 . 이제 데이터의 형태 는 샘플 (행) x 타임 스텝 (열) x 채널 인 입니다 .
당신이를 적용 할 때 그리고, TimeDistributedDense
당신이 적용하고 Dense
당신이 적용하고 의미, 각 시간 단계에 레이어를 Dense
각 레이어를 , , ..., 각각. 즉, 실제로는 에서 까지 각 채널 ( "200")에 각각 완전히 연결된 작업을 적용하고 있습니다. 700 번째 " "까지 첫 번째 " "
왜 이러는거야? RNN 출력을 평평하게하고 싶지 않기 때문입니다.
RNN 출력을 평탄화하지 않는 이유는 무엇입니까? 각 타임 스텝 값을 별도로 유지하려고하기 때문입니다.
각 타임 스텝 값을 별도로 유지해야하는 이유는 무엇입니까? 때문에: