Deep learning Keras输入阵列(x)不能有不同数量的样本?

Deep learning Keras输入阵列(x)不能有不同数量的样本?,deep-learning,keras,Deep Learning,Keras,我发现在当前的keras中,所有的输入数组(x)都应该有相同数量的样本 对于许多多输入和多输出模型,如果我们可以为每个输入定义不同数量的样本(也称为批大小),则更可取 这对于一个输入X1比另一个输入X2“便宜”得多的情况来说非常重要 假设现在我有两个输入X1,X2和两个输出Y1,Y2。 Y1是X1的函数,Y2是X1,X2的函数。 X1->Y1映射比X1,X2->Y2映射训练更快(“更便宜”)。 因此,我可能需要X1的大批量和X2的小批量 或者是否有可能对当前代码进行黑客攻击,从而使不同批量的输入

我发现在当前的keras中,所有的输入数组(x)都应该有相同数量的样本

对于许多多输入和多输出模型,如果我们可以为每个输入定义不同数量的样本(也称为批大小),则更可取

这对于一个输入X1比另一个输入X2“便宜”得多的情况来说非常重要

假设现在我有两个输入X1,X2和两个输出Y1,Y2。 Y1是X1的函数,Y2是X1,X2的函数。 X1->Y1映射比X1,X2->Y2映射训练更快(“更便宜”)。 因此,我可能需要X1的大批量和X2的小批量

或者是否有可能对当前代码进行黑客攻击,从而使不同批量的输入成为可能


期待任何人能给我一些建议。谢谢

你可以为你的样品做不同的重量。通过设置样本权重变量(),您的训练算法将考虑更便宜的样本


如果您想在不同的批次大小上进行培训,则需要使用model.train\u on\u batch并在不同的批次大小上进行传递。这本质上意味着你要编写自己的fit循环。

train\u on\u batch
应该可以工作。桶训练数据按批次和不同桶训练。嗨,Thomas和putonspectacles,谢谢你的回复。但我的问题是我需要不同批量的输入[X1,X2]。例如,X1的批量大小为64,X2的批量大小为256,即X1和X2的输入张量的第一个维度分别为64和256。我在批处理上尝试了fit_generator和train_,当我输入X=[X1,X2]时,它会抛出错误:“ValueError:所有输入数组(X)都应该有相同数量的样本。获得数组形状:[(64200111),(64200),(64200),(64200),(256,1),”我不确定样本权重在这里有什么帮助?我也有同样的问题。我尝试用虚拟数据填充较小的输入,然后在网络中对其进行切片以丢弃它,但是Keras也不允许这样做,因为您不能使用中间数据作为输入。你能解决这个问题吗,杰莫尔?我也有同样的问题。到目前为止有什么解决方案吗?在tensorflow中,我会将网络应用于两个输入张量,然后通过reduce_mean将输出减少到一个值,然后将它们相加并共同学习。我不确定这在纯keras中是否可行,但您可以在keras中使用tensorflow代码。您找到问题的解决方案了吗?