【发布时间】:2018-09-11 21:00:38
【问题描述】:
我正在构建一个简单的模型,该模型接受 2 个热数组(预测)并获取预测的模式。
例如,如果我们有 2 个数组:[0,1] 和 [0,1],我们的模式应该是类 [0,1] 另一个例子:[1,0][1,0][0,1] 应该是类 [1,0]
到目前为止我有这个:
def mode(inputs):
vals = [np.where(x==1)[0][0] for x in inputs]
return max(set(vals), key=vals.count)
img_in = np.array([[0,1]])
txt_in = np.array([[1,0]])
img_input = Input((2,), name='image_input')
txt_input = Input((2,), name='text_input')
img_input = Reshape((2,))(img_input)
txt_input = Reshape((2,))(txt_input)
x = Lambda(mode)([img_input, txt_input])
model = Model(inputs=[img_input, txt_input], outputs=[x])
如何获取向量的众数?
编辑:
我可以这样做:
def mode(inputs):
s = K.sum(inputs, axis=0)
s = K.argmax(s)
return s
但我得到一个错误
TypeError: Input 'y' of 'Mul' Op has type float32 that does not match type int64 of argument 'x'.
【问题讨论】: