1. Keras 소개
    1. [시작하기] Sequential 모델 가이드
    2. [시작하기] 함수형 API 가이드
    3. [시작하기] FAQ
    4. [모델] Keras의 모델
    5. [모델] 함수형 API
    6. [모델] Sequential
    7. [계층] Keras의 계층
    8. [계층] Core 계층
    9. [계층] 합성곱 계층
    10. [계층] 풀링 계층
    11. [계층] 부분적으로 연결된 계층
    12. [계층] 재발 계층
    13. [계층] 임베딩 계층
    14. [계층] Merge 계층
    15. [계층] 고급 활성화 계층
    16. [계층] 표준화 계층
    17. [계층] 노이즈 계층
    18. [계층] 계층 Wrappers
    19. [계층] 자신만의 Keras 계층 만들기
    20. [전처리] 시퀀스 전처리
    21. [전처리] 텍스트 전처리
    22. [전처리] 이미지 전처리
  2. Metrics
  3. 손실
  4. 최적화기
  5. 활성화
  6. Callbacks
  7. 데이터셋
  8. 애플리케이션
  9. 백엔드 1
  10. 백엔드 2
  11. 백엔드 3
  12. 백엔드 4
  13. 백엔드 5
  14. 초기화기
  15. 정규화기
  16. 제한
  17. 시각화
  18. Scikit-Learn API
  19. 유용한 도구

Recurrent [source]

keras.layers.recurrent.Recurrent(return_sequences=False, return_state=False, go_backwards=False, stateful=False, unroll=False, implementation=0)

재발 계층의 추상화 기본 클래스(abstract base class) 입니다.

유효한 계층이 아니니 모델에 사용하지는 마세요! 대신에 자녀 클래스인 LSTM, GRU, SimpleRNN 을 사용하세요.

모든 자녀 재발 계층(LSTM, GRU, SimpleRNN) 역시 아래 정리된 규격을 따르고 키워드 인수를 받아들입니다.

예제

# as the first layer in a Sequential model
model = Sequential()
model.add(LSTM(32, input_shape=(10, 64)))
# now model.output_shape == (None, 32)
# note: `None` is the batch dimension.

# for subsequent layers, no need to specify the input size:
model.add(LSTM(16))

# to stack recurrent layers, you must use return_sequences=True
# on any recurrent layer that feeds into another recurrent layer.
# note that you only need to specify the input size on the first layer.
model = Sequential()
model.add(LSTM(64, input_dim=64, input_length=10, return_sequences=True))
model.add(LSTM(32, return_sequences=True))
model.add(LSTM(10))

인수

입력 형태

다음과 같은 형태의 3차원 텐서 입니다: (batch_size, timesteps, input_dim). 선택적으로 다음과 같은 형태의 2차원 텐서도 가능합니다: (batch_size, output_dim).

출력 형태

마스킹(masking)

이 계층은 다양한 갯수의 시간단계의 입력 데이터에 대한 마스킹을 지원합니다. 데이터에 마스크를 적용하려면 임베딩 계층의 mask_zero 파라미터를 True로 설정하여 사용하세요.

RNNs의 상태보존성 사용에 대한 주의 사항

RNN 계층은 ‘상태보존적(stateful)'으로 설정할 수 있으며, batch의 샘플의 계산된 상태가 다음 batch의 샘플의 초기 상태로 재사용될 수 있음을 의미 합니다. 이 것은 서로 다른 이어지는 batch가 서로 일대일 대응이 됨을 가정합니다.

상태보존성을 가능하게 하려면:

모델의 상태를 리셋하려면 전체 모델이나 특정 계층에서 .reset_states()을 호출하세요.

RNNs의 초기 상태 지정에 대한 주의 사항

RNN 계층은 키워드 인수 initial_state와 함께 호출하여 기호적으로 초기 상태를 지정할 수 있습니다. initial_state값은 RNN 계층의 초기 상태를 표현하는 텐서 혹은 텐서의 리스트여야 합니다. RNN 계층은 키워드 인수 states와 함께 reset_states을 호출하여 수치적으로 초기 상태를 지정할 수 있습니다. states값은 RNN 계층의 초기 상태를 표현하는 numpy 배열 혹은 numpy 배열의 리스트여야 합니다.


SimpleRNN [source]

keras.layers.recurrent.SimpleRNN(units, activation='tanh', use_bias=True, kernel_initializer='glorot_uniform', recurrent_initializer='orthogonal', bias_initializer='zeros', kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0)

출력이 다시 입력으로 주어지는 완전히 연결된(Fully-connected) RNN 입니다.

인수

참고


GRU [source]

keras.layers.recurrent.GRU(units, activation='tanh', recurrent_activation='hard_sigmoid', use_bias=True, kernel_initializer='glorot_uniform', recurrent_initializer='orthogonal', bias_initializer='zeros', kernel_regularizer=None, recurrent_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, recurrent_constraint=None, bias_constraint=None, dropout=0.0, recurrent_dropout=0.0)

Gated Recurrent Unit 의 약자 입니다. Cho et al. 2014 논문을 참고하세요.

인수