Я пытаюсь использовать пользовательский слой Lambda в качестве первого слоя в моей нейронной сети в Keras (с использованием бэкэнда тензорного потока с Python 3.6). Лямбда-слой input_reshape_sample
в основном берет длинный одномерный вектор и разбивает его на тензор ранга 9. Затем сеть инициализируется как
model_resize = Sequential()
model_resize.add(Lambda(input_reshape_sample, input_shape=[input_size]))
где в моем случае input_size=576
.
Когда я запускаю сеть, я получаю следующую ошибку, ссылаясь на вторую строку кода выше:
ValueError: Shape must be rank 1 but is rank 0 for 'lambda_49/Slice' (op: 'Slice') with input shapes: [?,576], [], [].
Действительно, когда я печатаю ввод в слой Lambda с помощью print(input_vec.get_shape())
, я получаю (?, 576)
. Я не понимаю, почему добавлено это дополнительное ?
измерение.