Я пытаюсь внедрить позиционную информацию 'index' в некоторый вектор и использую в Keras, например,
inputs = Input(shape=(23,))
, который обычно 23 представляет как число признаков.Я хочу встроить позицию объектов в одномерный вектор, из позиции 0 в позицию 22.
Но я не знаю, как получить индекс позиции объектов (я хочу что-то вроде 'перечислить'функция для слоя keras), я добавил
pos = K.constant([[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]])
embedding_pos = Embedding(23, 1)(pos)
И я на самом деле это embedding_pos для умножения на входы и выполнения остальных алгоритмов.
Но я получаю это сообщение
AttributeError: у объекта 'NoneType' нет атрибута '_inbound_nodes'
Если я избавлюсь от этого встраиваемого слоя иумножить слой, алгоритм работает отлично.Как я должен получить векторы внедрения, используя индекс положения объектов входных данных?
======
Добавляя больше информации, я перемещался по слоям, чтобы увидеть модель.summary (), похоже, что он имеет форму embedding_pos = [None, 1], в которой отсутствует размер пакета.
Не думаю, что стоит использовать «Константу».Я хотел бы знать, есть ли какая-то функция 'enumerate' для слоя keras
=====
По запросу пример ввода выглядит так:
batch_size x number_of_features = 1 x 10
[[1.0, 4719.0, 0.0001, 472818.44, 958, 6402818., 1.828, 24.321, 55.0, 127.44]]
и т. Д. *
Я хочу получить индекс функций
[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]
, чтобы использовать это значение в качестве входных данных для встраивания.
Но если я сделаю это с константой, он не будет знать размер пакета.