双输出模型修改 : res1 = Dense(trainY1.shape[1])(lstm_out) res2 = Dense(trainY2.shape[1])(lstm_out) #highway 使用Dense模拟AR自回归过程,为预测添加线性成份,同时使输出可以响应输入的尺度变化。 highway_window = config.highway_window #截取近3个窗口的时间维 保留了所有的输入维度 z = Lambda(lambda k: k[:, -highway_window:, :])(input_data1) z = Lambda(lambda k: K.permute_dimensions(k, (0, 2, 1)))(z) z = Lambda(lambda k: K.reshape(k, (-1, highway_window*trainX1.shape[2])))(z) z = Dense(trainY1.shape[1])(z) z2 = Dense(trainY2.shape[1])(z) res1 = add([res1,z]) res1 = Activation('sigmoid')(res1) res2 = add([res2,z2]) res2 = Activation('sigmoid')(res2) model = Model(inputs=[input_data1,input_data2], outputs=[res1,res2]) return model
时间: 2024-04-04 15:34:05 浏览: 97
LSTM.zip_lstm 预测_lstm预测_航站楼_预测_预测客运量
5星 · 资源好评率100%
这段代码看起来是针对一个双输出模型的修改,其中定义了两个输出分别对应训练集的Y1和Y2。接着使用了Dense层来模拟AR自回归过程,将预测结果添加线性成分,以便让输出可以响应输入尺度的变化。接着使用Lambda层截取了近3个窗口的时间维,保留了所有的输入维度,然后对其进行一系列的变换和计算,最后将其与之前的输出结果进行相加,并通过sigmoid函数激活。最后使用Keras的Model函数定义模型并返回。
阅读全文