【发布时间】:2017-03-23 16:27:26
【问题描述】:
我设计具有动态输入量的神经网络。我的想法是用共享模型处理一组数据,然后平均/最大化它们的结果并将分类器放在它上面。
阅读文档后,我确信可以使用 Keras,但我遇到了keras.layers.average 只能接收输入张量的问题。但我需要对模型或其他层进行此操作。
这是我现在拥有的代码
inputs = [Input((countInputCount,))] # count is always here
downs = []
for i in range(count):
inputs.append(Input((inputCount,)))
downs.append(sharedDown(inputs[-1]))
avg = keras.layers.average(downs)
max = keras.layers.maximum(downs)
middle = keras.layers.concatenate([inputs[0], avg, max])
为此我得到了下一个错误:ValueError: A merge layer should be called on a list of inputs.
可能我对这个错误的理解不正确。任何帮助将不胜感激。
谢谢。
【问题讨论】:
-
你不需要输入层。合并层需要输入的列表(即张量列表),而不是
Input()s 的列表。 -
谢谢。问题实际上是列表中 1 张量的边缘情况