def train_normal_model(path_train, input_size, hidden_size, batch_size, early_stopping_patience, val_percentage, save_dir, model_name, maxlen):
if not os.path.exists(save_dir):
os.mkdir(save_dir)
db = read_data(path_train)
train_x = db[:-140]
train_y = db[140:]
X = create_sequences(train_x, 140, 140)
y = create_sequences(train_y, 140, 140)
X = np.reshape(X, (X.shape[0], X.shape[1], 1))
# preparing the callbacks
check_pointer = callbacks.ModelCheckpoint(filepath=save_dir + model_name, verbose=1, save_best_only=True)
early_stop = callbacks.EarlyStopping(patience=early_stopping_patience, verbose=1)
# build the model: 1 layer LSTM
print('Build model...')
model = Sequential()
model.add(LSTM(hidden_size, return_sequences=False, input_shape=(maxlen, input_size)))
model.add(Dense(140))
model.compile(loss='mse', optimizer='adam')
model.summary()
model.fit(X, y, batch_size=batch_size, nb_epoch=100, validation_split=val_percentage,
callbacks=[check_pointer, early_stop])
return model
评论列表
文章目录