1D CNN의 간략한 예제코드를 공유한다.
python과 R을 동시에 포스팅 하는 것이 좋아보여, 앞으로는 같이 포스팅하고자 한다.
1D-CNN & Multi input Multi output Model in R
lstm 모형은 아래 링크를 참고하기 바란다. rcj92.tistory.com/11 R tensorflow LSTM 예제 코드(GPU 사용) lstm 모형 구축을 하기 앞서 딥러닝 코드 구현도 충분히 중요하지만, 이론을 모르는 상황에서 모델을
rcj92.tistory.com
import pandas as pd
import numpy as np
import tensorflow as tf
import keras
import statsmodels.api as sm
# https://ehfgk78.github.io/2018/01/21/DataScience07TimeSeriesData01/
df = sm.datasets.get_rdataset("AirPassengers").data
df=df.set_index('time')
as_ts=df[df.index<1956]
as_ts_test=df[df.index>=1956]
data=as_ts_test
def data_generate(data):
tr=np.array(data).flatten()
tr_xs=list();tr_ys=list()
for i in range((len(tr)-36)):
tr_xs.append(tr[i:(i+23+1)][np.newaxis,:])
tr_ys.append(tr[(i+13):(i+36+1)][np.newaxis,:])
tr_x=np.concatenate(tr_xs,axis=0)[:,:,np.newaxis]
tr_y=np.concatenate(tr_ys,axis=0)[:,:,np.newaxis]
return tr_x,tr_y
tr_x,tr_y=data_generate(as_ts)
te_x,te_y=data_generate(as_ts_test)
model=keras.Sequential()
model.add(keras.layers.Conv1D(filters=64,kernel_size=3,input_shape=(24,1),padding='valid',activation='relu'))
model.add(keras.layers.MaxPooling1D(pool_size=4))
model.add(keras.layers.Flatten())
model.add(keras.layers.Dense(units=24))
model.compile(
loss='mae',
optimizer='adam',
metrics=['mae']
)
model.summary()
model.fit(x=tr_x,y=tr_y[:,:,0],batch_size=3,epochs=600)
'통계 및 인공지능 > tensorflow&keras' 카테고리의 다른 글
[tensorflow] Attention model Regression (0) | 2021.06.11 |
---|---|
[tensorflow]Seq2Seq regression in python (0) | 2021.06.11 |