def __init__(self, input_shape, lr=0.01, n_layers=2, n_hidden=8, rate_dropout=0.2, loss=risk_estimation): # risk_estimation, risk_estimation_bhs
print("initializing..., learing rate %s, n_layers %s, n_hidden %s, dropout rate %s." %(lr, n_layers, n_hidden, rate_dropout))
# build a model with Sequential()
self.model = Sequential()
# todo: ask why dropout on input layer?
self.model.add(Dropout(rate=rate_dropout, input_shape=(input_shape[0], input_shape[1])))
# build a number of LSTM layers
for i in range(0, n_layers - 1):
self.model.add(LSTM(n_hidden * 4, return_sequences=True, activation='tanh',
recurrent_activation='hard_sigmoid', kernel_initializer='glorot_uniform',
recurrent_initializer='orthogonal', bias_initializer='zeros',
dropout=rate_dropout, recurrent_dropout=rate_dropout))
# add another LSTM layer
self.model.add(LSTM(n_hidden, return_sequences=False, activation='tanh',
recurrent_activation='hard_sigmoid', kernel_initializer='glorot_uniform',
recurrent_initializer='orthogonal', bias_initializer='zeros',
dropout=rate_dropout, recurrent_dropout=rate_dropout))
#######################
# original deep trader
#######################
# # add a dense layer, with BatchRenormalization, relu_limited
# self.model.add(Dense(1, kernel_initializer=initializers.glorot_uniform()))
# self.model.add(BatchRenormalization(axis=-1, beta_init=Constant(value=0.5)))
# self.model.add(Activation(relu_limited))
#######################
# revised version 1
#######################
self.model.add(Dense(1, kernel_initializer=initializers.glorot_uniform()))
self.model.add(Activation('sigmoid'))
#######################
# revised 2 for classification style solution
#######################
# self.model.add(Dense(5, kernel_initializer=initializers.glorot_uniform()))
# self.model.add(Activation('softmax'))
#######################
# revised 1.5 for buy_hold_sell activation function
#######################
# self.model.add(Activation(buy_hold_sell))
# compile model
opt = RMSprop(lr=lr)
self.model.compile(loss=loss,
optimizer=opt,
metrics=['accuracy'])
build_model_03_stock_01_WindPuller_class_can_build_fit_evaluate_predict_model.py 文件源码
python
阅读 22
收藏 0
点赞 0
评论 0
评论列表
文章目录