build_model_03_stock_01_WindPuller_class_can_build_fit_evaluate_predict_model.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:LIE 作者: EmbraceLife 项目源码 文件源码
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'])
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号