Использование функции Tensorflow feature_column в модели Keras
Как можно использовать функцию Tensorflow feature_column
в сочетании с моделью Keras?
Например, для оценки Tensorflow мы можем использовать столбец внедрения из Tensorflow Hub:
embedded_text_feature_column = hub.text_embedding_column(
key="sentence",
module_spec="https://tfhub.dev/google/nnlm-en-dim128/1")
estimator = tf.estimator.DNNClassifier(
hidden_units=[100],
feature_columns=[embedded_text_feature_column],
n_classes=2,
optimizer=tf.train.AdamOptimizer(learning_rate=0.001))
Тем не менее, я хотел бы использовать TF-концентратор text_embedding_column
качестве входных данных для модели text_embedding_column
. Например
net = tf.keras.layers.Input(...) # use embedding column here
net = tf.keras.layers.Flatten()
net = Dense(100, activation='relu')(net)
net = Dense(2)(net)
Это возможно?
Ответы
Ответ 1
Кажется, ответ таков: вы не используете функциональные столбцы. Keras
поставляется с собственным набором функций предварительной обработки изображений и текста, так что вы можете использовать их.
Таким образом, в основном tf.feature_columns
зарезервированы для API высокого уровня. Затем функции tf.keras.preprocessing()
используются с моделями tf.keras
.
Вот ссылка на раздел о предварительной обработке данных в документации keras
.
https://keras.io/preprocessing/text/
Вот еще один пост Stackoverflow, в котором есть пример такого подхода.
Добавить предварительную обработку Tensorflow к существующей модели Keras (для использования в обслуживании Tensorflow)
Ответ 2
Функциональный API Keras является жизнеспособным способом сделать это, но если вы хотите использовать feature_columns
, это руководство покажет вам, как:
https://www.tensorflow.org/beta/tutorials/keras/feature_columns
По сути, именно этот слой DenseFeatures
выполняет свою работу:
feature_layer = tf.keras.layers.DenseFeatures(feature_columns)
model = tf.keras.Sequential([
feature_layer,
layers.Dense(128, activation='relu'),
layers.Dense(128, activation='relu'),
layers.Dense(1, activation='sigmoid')
])