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



我通过功能API和模型使用keras共享层。Train_on_batch选项,即

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将作为第一个输入- dense_layer.get_input_shape_at(0)传递,并产生第一个输出dense_layer.get_output_at(0)
  • x2将作为第二个输入-传递dense_layer.get_input_shape_at(1),产生第二个输出dense_layer.get_output_at(1)

实际上,据我所知,这个模型相当于用x1x2串联起来训练dense_layer,以及单个输入/输出(没有input2output2)

你可以用Merge层将两个输出简化为一个输出。有不同的合并模式,concat是其中之一。

相关内容

  • 没有找到相关文章

最新更新