Как использовать tenorflow feature_columns в качестве входных данных для модели keras - PullRequest
0 голосов
/ 26 января 2019

API feature_columns Tensorflow весьма полезен для обработки нечисловых объектов.Тем не менее, текущий документ API больше об использовании feature_columns с оценщиком tenorflow.Есть ли возможный способ использовать feature_columns для представления категориальных объектов, а затем построить модель на основе tf.keras?

Единственная ссылка, которую я нашел, - это следующее руководство.Здесь показано, как передать столбцы объектов в последовательную модель Keras: Ссылка

Фрагмент кода выглядит следующим образом:

from tensorflow.python.feature_column import feature_column_v2 as fc

feature_columns = [fc.embedding_column(ccv, dimension=3), ...]
feature_layer = fc.FeatureLayer(feature_columns)
model = tf.keras.Sequential([
    feature_layer,
    tf.keras.layers.Dense(128, activation=tf.nn.relu),
    tf.keras.layers.Dense(64, activation=tf.nn.relu),
    tf.keras.layers.Dense(1, activation=tf.nn.sigmoid)
])
...
model.fit(dataset, steps_per_epoch=8) # dataset is created from tensorflow Dataset API

Вопрос заключается в том, как использоватьмодель с керасом функциональная модель API.Я попробовал следующее, но это не сработало (тензор потока версии 1.12)

feature_layer = fc.FeatureLayer(feature_columns)
dense_features = feature_layer(features) # features is a dict of ndarrays in dataset
layer1 = tf.keras.layers.Dense(128, activation=tf.nn.relu)(dense_features)
layer2 = tf.keras.layers.Dense(64, activation=tf.nn.relu)(layer1)
output = tf.keras.layers.Dense(1, activation=tf.nn.sigmoid)(layer2)
model = Model(inputs=dense_features, outputs=output)

Журнал ошибок:

ValueError: Input tensors to a Model must come from `tf.layers.Input`. Received: Tensor("feature_layer/concat:0", shape=(4, 3), dtype=float32) (missing previous layer metadata).

Я не знаю, как преобразовать столбцы объектов в модели kerasвход.

Ответы [ 3 ]

0 голосов
/ 27 марта 2019

Я недавно читал этот документ в альфа-версии TensorFlow 2.0: https://www.tensorflow.org/alpha/tutorials/keras/feature_columns#create_a_feature_layer. В нем есть примеры использования Keras вместе с API столбцов функций. Не уверен, что вы собираетесь использовать TF 2.0

0 голосов
/ 09 мая 2019

Если вы используете API набора данных tenorflow, этот код может хорошо работать.

featurlayer = keras.layers.DenseFeatures(feature_columns=feature_columns)
train_dataset = train_dataset.map(lambda x, y: (featurlayer(x), y))
test_dataset = test_dataset.map(lambda x, y: (featurlayer(x), y))

model.fit(train_dataset, epochs=, steps_per_epoch=, # all_data/batch_num = 
     validation_data=test_dataset,
     validation_steps=)
0 голосов
/ 21 марта 2019

tf.feature_column.input_layer Пользователь этой функции, и этот документ API имеет образец. Вы можете преобразовать featur_columns в Tensor, а затем использовать его в Mode ()

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