Я пытаюсь создать векторы предложений для модели классификации текста, извлекая слово с наибольшей нормой (используя это слово для представления предложения). Ниже приведена часть моего кода Keras:
Text = Input(shape=(30,))
sentence_mat = Embedding(10000, 300, input_length=30)(Text)
Norms = Lambda(lambda x: K.sum(K.square(x), axis=-1))(sentence_mat)
Largest_idx = Lambda(lambda x: K.argmax(x))(Norms)
Largest = Lambda(lambda x: tf.gather_nd(x, Largest_idx))(sentence_mat)
Output = Dense(5, activation='softmax')(Largest)
Однако возникает следующая ошибка:
File "C:/Users/Ken/Desktop/Testing/model.py", line 39, in <module>
Output = Dense(5, activation='softmax')(Largest)
File "C:/Users/Ken/Wheels/keras/engine/base_layer.py", line 463, in __call__
self.build(unpack_singleton(input_shapes))
File "C:/Users/Ken/keras/layers/core.py", line 888, in build
assert len(input_shape) >= 2
TypeError: object of type 'NoneType' has no len()
Что я не понимаю, почему это так. Может кто-нибудь объяснить мне это?
Было бы лучше, если бы существовало решение, использующее подход Keras, который напрямую не связан с Tensorflow.