【问题标题】:Keras shared layer batch update: How are the samples mixedKeras共享层批量更新:样本如何混合
【发布时间】:2016-10-25 13:14:09
【问题描述】:

我正在通过功能 API 和 model.train_on_batch 选项使用 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) 是如何混合的?

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

【问题讨论】:

    标签: keras


    【解决方案1】:

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

    • 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 layer 将两个输出简化为一个。有不同的合并模式,concat 就是其中之一。

    【讨论】:

      猜你喜欢
      • 2019-01-31
      • 2019-12-06
      • 2020-01-15
      • 2019-05-08
      • 2021-11-12
      • 2021-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多