Я пытаюсь построить действительно простую нейронную сеть в Керасе:
model = Sequential()
model.add(Dense(40, input_dim=186, activation='relu', name='x'))
model.add(Dense(3, activation='softmax'))
Это работает и выдает трехмерный вектор (например, 0 1 0
). Я хотел бы добавить слой, который использует argmax для отправки одного значения, а не этот вектор.
Я полагал, что это будет работать:
model.add(Lambda(lambda x: K.cast(K.argmax(x), dtype='float32')))
Но это броски (5962 - количество тренировочных образцов):
ValueError: Error when checking target: expected lambda_1 to have 1 dimensions, but got array with shape (5962, 3)
Как бы мне этого добиться?
Обратите внимание, что я хотел бы, чтобы это было в модели в качестве фактического слоя ArgMax, аналогично ArgMax TensorFlow .