У меня есть следующий код для усреднения вложений для списка идентификаторов элементов.
(Встраивание обучается на review_meta_id_input и используется в качестве поиска для pirors_input и для получения среднего встраивания)
review_meta_id_input = tf.keras.layers.Input(shape=(1,), dtype='int32', name='review_meta_id')
priors_input = tf.keras.layers.Input(shape=(None,), dtype='int32', name='priors') # array of ids
item_embedding_layer = tf.keras.layers.Embedding(
input_dim=100, # max number
output_dim=self.item_embedding_size,
name='item')
review_meta_id_embedding = item_embedding_layer(review_meta_id_input)
selected = tf.nn.embedding_lookup(review_meta_id_embedding, priors_input)
non_zero_count = tf.cast(tf.math.count_nonzero(priors_input, axis=1), tf.float32)
embedding_sum = tf.reduce_sum(selected, axis=1)
item_average = tf.math.divide(embedding_sum, non_zero_count)
У меня также есть некоторые столбцы функций, такие как ..
(Я просто подумал, что feature_column выглядит круто, но не так много документов, которые нужно искать ..)
kid_youngest_month = feature_column.numeric_column("kid_youngest_month")
kid_age_youngest_buckets = feature_column.bucketized_column(kid_youngest_month, boundaries=[12, 24, 36, 72, 96])
Я бы хотел определить [review_meta_id_iput, priors_input, (tensors from feature_columns)]
как вход для модели keras.
что-то вроде:
inputs = [review_meta_id_input, priors_input] + feature_layer
model = tf.keras.models.Model(inputs=inputs, outputs=o)
Чтобы получить тензоры из столбцов объектов, самое близкое преимущество, которое у меня сейчас есть,
fc_to_tensor = {fc: input_layer(features, [fc]) for fc in feature_columns}
из https://github.com/tensorflow/tensorflow/issues/17170
Однако я не уверен, что features
в коде.
Там нет четкого примера на https://www.tensorflow.org/api_docs/python/tf/feature_column/input_layer либо.
Как мне создать переменную features
для fc_to_tensor
?
Или есть способ использовать keras.layers.Input
и feature_column
одновременно?
Или есть альтернатива, чем tf.feature_column, чтобы сделать разбивку, как указано выше? тогда я просто отброшу feature_column;