Keras共享层批量更新:样本如何混合

Keras共享层批量更新:样本如何混合,keras,Keras,我通过函数API和model.train_on_批处理选项使用keras共享层,即 dense_layer = Dense(10, name='dense_1') out1 = dense_layer(input1) out2 = dense_layer(input2) model = Model(input=[input1,input2],output=[out1,out2]) ... model.train_on_batch([x1,x2],[y1,y2]) 问题是:如果我执行model.

我通过函数API和model.train_on_批处理选项使用keras共享层,即

dense_layer = Dense(10, name='dense_1')
out1 = dense_layer(input1)
out2 = dense_layer(input2)
model = Model(input=[input1,input2],output=[out1,out2])
...
model.train_on_batch([x1,x2],[y1,y2])
问题是:如果我执行model.train_on_batch(),样本(x1,y1)、(x2,y2)是如何混合的


它们是简单地沿着第一个轴连接还是随机混合?

答案是,两者都不是。使用您发布的代码,根据:

  • x1
    将作为第一个输入-
    densite\u层传递。在(0)处获取\u input\u shape\u
    并生成第一个输出
    densite\u层。在(0)处获取\u output\u
  • x2
    将作为第二个输入传递-
    密集\u层。在(1)处获取\u输入\u形状\u
    并生成第二个输出
    密集\u层。在(1)处获取\u输出\u
事实上,据我所知,这个模型相当于训练
密集层
,将
x1
x2
串联起来,并使用单个输入/输出(无
input2
output2


您可以使用一个模型将两个输出减少为一个输出。有不同的合并模式,
concat
是其中之一。

答案是,两者都不是。使用您发布的代码,根据:

  • x1
    将作为第一个输入-
    densite\u层传递。在(0)处获取\u input\u shape\u
    并生成第一个输出
    densite\u层。在(0)处获取\u output\u
  • x2
    将作为第二个输入传递-
    密集\u层。在(1)处获取\u输入\u形状\u
    并生成第二个输出
    密集\u层。在(1)处获取\u输出\u
事实上,据我所知,这个模型相当于训练
密集层
,将
x1
x2
串联起来,并使用单个输入/输出(无
input2
output2

您可以使用一个模型将两个输出减少为一个输出。有不同的合并模式,
concat
就是其中之一