ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • LSTM layer return_sequences 파라미터 True, False 차이
    Time Series 2023. 4. 19. 16:30

    LSTM layer 파라미터에 return_sequences 가 있는데 얘는 True, False로 설정할 수 있음.

    True와 False의 차이는 무엇일까?! 검색을 통해서 봤는데 아직 정확하게 모르겠음

    모델 구조에서 차이를 확인해보자!

     

    • return_sequences = False 일 때.
    model.add(keras.layers.Conv1D(filters=3, 
                                  kernel_size=4,
                                  padding='same',
                                  activation='relu',
                                  strides=1))
    model.add(MaxPooling1D(pool_size=4))
    model.add(keras.layers.LSTM(units=sequence_x, return_sequences=False))
    model.add(keras.layers.Dense(units=sequence_y, activation='relu'))

     

    • return_sequences = True 일 때
    model = keras.Sequential()
    model.add(keras.layers.Conv1D(filters=3, 
                                  kernel_size=4,
                                  padding='same',
                                  activation='relu',
                                  strides=1))
    model.add(MaxPooling1D(pool_size=4))
    model.add(keras.layers.LSTM(units=sequence_x, return_sequences=True))
    model.add(keras.layers.Dense(units=sequence_y, activation='relu'))


    마지막 dense layer의 output shape이 다르다.

    return_sequences=False 일 때는 Output Shape이 (None, 1) 인데, 

    return_sequences=True일 때는 Output Shape이 (None, 8,1) 이다.

    가운데 8은 어디서 오는 거지? MaxPooling1D layer를 거쳐서 저렇게 된 건데, pool_size = 4 가 영향이 있는 것 같다.

    그래서 결론은, return_sequences=True이면,  예측결과값 하나에 8개의 예측결과를 가지고 있는 것.

    Q. 그럼 이럴 땐 실제 vs 예측 그래프는 어떻게 그리면 될까?

    Q. 저 8개의 예측값은 뭘 의미하는 걸까??

    -> 이 궁금증을 해결하기 위해서는 return_sequences 의 의미를 정확하게 알아야할듯 ! 더 공부해보자.


    그래서 결과값 하나만 뽑을 때는 Dense layer 전에 있는 lstm이나 gru layer에서는 return_sequences를 False로 해줘야한다.

    'Time Series' 카테고리의 다른 글

    prediction vs forecast  (0) 2023.05.09
Designed by Tistory.