이전에 실습했던 내용은 SimpleRNN을 사용했고 이번에는 LSTM을 이용한 시계열 데이터 처리를 배워보자
데이터셋은 SimpleRNN 실습 때 사용했던 것을 재사용한다.
data = np.sin( np.pi * np.arange(0, 100)* 2.025 ) + np.random.random(100)
x = np.array([data[i+j] for i in range(len(data)-10) for j in range(10)])
x_train = x[:700].reshape(-1,10,1)
x_test = x[700:].reshape(-1,10,1)
y = np.array([data[i+10] for i in range(len(data)-10)])
y_train = y[:70].reshape(-1,1)
y_test = y[70:].reshape(-1,1)
데이터셋 설명은 따로 하지 않고 바로 모델을 보자
model = models.Sequential()
model.add(layers.LSTM(8,input_shape = (10,1)))
model.add(layers.Dense(1))
model.compile(optimizer='adam',loss='mse')
model.fit(x_train,y_train,epochs=500,verbose=0)
모델을 보게 되면 이전 모델을 가져온 걸로 볼 수 있다.
하지만 SimpleRNN이 아닌 LSTM으로 설정되어 있다.
이러면 LSTM 모델이 된다.
그래프 그리는 것은 생략한다.
이는 사용한 데이터가 많은 양의 데이터가 아니기에 그래프를 그리더라도 크게 차이를 느낄 수 없다.
작성자 김강빈 kkb08190819@gmail.com / 이원재 ondslee0808@gmail.com
'【5】RNN 기본 다지기 > 실습으로 익히는 순환신경망' 카테고리의 다른 글
LSTM을 이용한 자연어처리(실습) (0) | 2020.03.04 |
---|---|
기본 RNN과 LSTM 비교 (0) | 2020.02.17 |