Скажем, мои данные имеют 25 функций. В Keras я мог бы легко реализовать слой Embedding
для каждой функции ввода и объединить их вместе для подачи на более поздние слои.реализовать слой внедрения с использованием тензорного потока
Я вижу, что tf.nn.embedding_lookup
принимает параметр id
, который может быть просто простым целым числом или целым числом ([1,2,3, ..]). Тем не менее, вход функции часто формы
x = tf.placeholder(tf.float32, [None, in_feature_num])
я мог бы разделить эту функцию на свой собственный, используя
X = tf.split(1,in_feature_num,x)
и каждую функцию ввод имеет форму [?, 1]. Но embedding_lookup
не имеет формы [?, 1], и поскольку мы не имеем заданную длину строки, я не могу reshape
или unpack
ее форме, например [?].
Итак, как же я мог преобразовать входной сигнал, как
[[1],
[2],
[3],
...
]
в представление вложения, как это:
[
[....], #a vector
[....], #a vector
[....], #a vector
...
]
Относящиеся SO вывешивают: What does tf.nn.embedding_lookup function do? и TensorFlow Embedding Lookup но эти посты не решить мою проблема.
Я не уверен на 100%, что вы подразумеваете под «ваши данные имеет функции». Я понимаю, что вложения - это представители ваших входных данных. Таким образом, это функции. Вы можете добавить слой внедрения перед своим NN и узнать вес, чтобы на самом деле изучить слой внедрения или добавить обобщенный предварительно подготовленный. Не могли бы вы уточнить свои данные? – roopalgarg
Вы говорите, что у вас есть партия из 25 функций, и вы хотите, чтобы каждая функция имела собственное вложение? – mazecreator