J'ai un problème qui concerne la prédiction de deux sorties lorsqu'un vecteur de prédicteurs est donné. Supposons qu'un vecteur prédictif ressemble à x1, y1, att1, att2, ..., attn
, qui dit x1, y1
sont des coordonnées et att's
sont les autres attributs liés à l'occurrence de x1, y1
_ coordonnées. Sur la base de cet ensemble de prédicteurs, je veux prédire x2, y2
. C’est un problème de série chronologique que j’essaie de résoudre à l’aide de régressions multiples. Ma question est de savoir comment configurer keras, qui peut me donner 2 sorties dans la couche finale. J'ai résolu le problème de régression simple dans keras et le code est disponible dans mon github .
from keras.models import Model
from keras.layers import *
#inp is a "tensor", that can be passed when calling other layers to produce an output
inp = Input((10,)) #supposing you have ten numeric values as input
#here, SomeLayer() is defining a layer,
#and calling it with (inp) produces the output tensor x
x = SomeLayer(blablabla)(inp)
x = SomeOtherLayer(blablabla)(x) #here, I just replace x, because this intermediate output is not interesting to keep
#here, I want to keep the two different outputs for defining the model
#notice that both left and right are called with the same input x, creating a fork
out1 = LeftSideLastLayer(balbalba)(x)
out2 = RightSideLastLayer(banblabala)(x)
#here, you define which path you will follow in the graph you've drawn with layers
#notice the two outputs passed in a list, telling the model I want it to have two outputs.
model = Model(inp, [out1,out2])
model.compile(optimizer = ...., loss = ....) #loss can be one for both sides or a list with different loss functions for out1 and out2
model.fit(inputData,[outputYLeft, outputYRight], epochs=..., batch_size=...)