Я строю простую модель, которая принимает 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])
Как мне получить режим векторов?
EDIT:
Я могу сделать что-то вроде этого:
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'.