我正在研究Keras/TF的以下自回归问题:
输入:
m示例x10时间步(序列长度)x7特征
(每个值都是实际值)
输出:
m示例x4目标/“标签”(我要预测的实际值)
到目前为止,使用LSTMs在末尾使用密集层(已编辑)。举个例子,我在一个10大小的序列中给出了7个特征,我只需要4个实际值(我根据以前的值预测当前值)
预测的区别是什么:
答。1输出尺寸mx4
b。4个输出,每个维度mx1
我试过这两种方法,我看不出有什么特别的区别,但我想了解他们都做什么。在第二种情况下,我知道我可以为我想要预测的每个变量的损失指定不同的损失和不同的权重,但这似乎比第一种方法更不正确
#python / Keras-TF
#a. multi output
model = Model(inputs = X_input, outputs = [Output1,Output2,Output3,Output4])
prediction = model.predict(X_test_normalized) #returns an inconvenient list of 4 [2 by 1 vectors] which in the end gives me m*4 real values as wanted
###### vs ######
#b. single output
model = Model(inputs = X_input, outputs = [Output1]) #vector of dimension 4
prediction = model.predict(X_test_normalized) #returns a m*4 matrix
这在大多数情况下并没有什么区别。如果输出层是密集层,则每个层都有一个n*1权重矩阵。如果只有一个输出层,则权重的形状为n*4。一般来说,一个大的输出层速度更快,因为一个大的矩阵乘法通常比多个小的矩阵乘法快
您也可以加权单个输出层的输出。只需将其与输出大小的权重向量相乘,然后再将其用于损失
相关问题 更多 >
编程相关推荐