Керас встраивание позиционной информации - PullRequest
0 голосов
/ 29 января 2019

Я пытаюсь внедрить позиционную информацию '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]]

, чтобы использовать это значение в качестве входных данных для встраивания.

Но если я сделаю это с константой, он не будет знать размер пакета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...