【问题标题】:Implementing a multi-input model in Keras, each with a different sample sizes each (different batch sizes each)在 Keras 中实现一个多输入模型,每个模型都有不同的样本大小(每个都有不同的批量大小)
【发布时间】:2017-10-21 10:50:37
【问题描述】:

我目前正在尝试在 Keras 中实现多输入模型。输入由多个批次组成,每个批次都包含不同的样本,但我得到一个“不同的样本”错误。我的实现如下所示:

模型站点如下所示:

for s in range(NUM_STREAMS):
    inp.append(Input(shape=(16,8)))
...

发生错误的站点:

history = model.train_on_batch(
                x=[x for x in X_batch],
                y=[y for y in y_batch]
            )

我得到的错误是:

ValueError: All input arrays (x) should have the same number of
samples. Got array shapes: [(6, 16, 8), (7, 16, 8), (6, 16, 8), (6, 16, 8)]

抽象模型架构如下:

【问题讨论】:

  • 您应该提供足够的详细信息,例如模型结构。数据和标签等的形式是什么。但是,我认为 Keras 不会成为此类网络的一个很好的工具。您可以尝试具有动态计算图的 PyTorch。我并不是说这在 Keras 中是不可能的,但它可能相对困难。
  • @DaveTheAI 你是怎么解决这个问题的?
  • 嘿@N.IT,1.5 年前,但我记得我可以附加随机填充值并再次忽略输出。 (即,如果输入是 (6, 6, 7, 6),我会附加一些随机输入,例如 (7, 7, 7, 7) 并忽略最后附加的项目)

标签: python tensorflow deep-learning batch-processing keras


【解决方案1】:

仅供参考,当遇到类似问题时,我在 tensorflow 中重写了我的模型,因为它们的计算图不受限于保持批量大小维度不变。

【讨论】:

    猜你喜欢
    • 2021-05-22
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 2019-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-24
    相关资源
    最近更新 更多