# I/O dimension, shape of data
batch_start= 0
time_steps= 10
input_length= 3
target_length= 3
# build model
model= Sequential()
model.add(Conv1D(64, 6, input_shape= (time_steps, input_length)))
model.add(Conv1D(32, 5))
model.add(Flatten())
model.add(Dense(64))
model.add(Dropout(0.25))
model.add(Dense(64))
model.add(Dense(32))
model.add(Dense(16))
model.add(Dense(8))
model.add(Dense(3))
model.compile(optimizer= 'rmsprop', loss= 'mean_squared_error')
# train model
for i in range(len(t)-batch_size*time_steps):
t_fit= t[batch_start:batch_start+time_steps]
input_ts_fit= input_ts[batch_start:batch_start+time_steps] # input matrix in timesteps window
target_ts_fit= target_ts[batch_start+time_steps] # the output at t+1
input_ts_fit= input_ts_fit[np.newaxis,:,:] #fit the dimension of data
target_ts_fit= target_ts_fit[np.newaxis,:]
batch_start += 1
# fit model
model.fit(input_ts_fit, target_ts_fit, batch_size=5, epochs= 10)
# predict data based on training example
batch_start= 0
for i in range(len(t)-batch_size*time_steps):
# data preparation as the same above
pred_ts = model.predict(input_ts_fit)
batch_start += 1
# plot the result
model= Sequential()
model.add(Conv1D(64, 6, input_shape= (time_steps, input_length)))
model.add(Conv1D(32, 5))
model.add(Flatten())
model.add(Dense(64))
model.add(Dropout(0.25))
model.add(Dense(64))
model.add(Dense(32))
model.add(Dense(16))
model.add(Dense(8))
model.add(Dense(3))
model.compile(optimizer= 'rmsprop', loss= 'mean_squared_error')