【问题标题】:Using a Tensorflow feature_column in a Keras model在 Keras 模型中使用 Tensorflow 特征列
【发布时间】:2018-10-31 12:14:35
【问题描述】:

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 Hub text_embedding_column 作为 Keras 模型的输入。例如

net = tf.keras.layers.Input(...) # use embedding column here
net = tf.keras.layers.Flatten()
net = Dense(100, activation='relu')(net)
net = Dense(2)(net)

这可能吗?

【问题讨论】:

    标签: tensorflow keras deep-learning


    【解决方案1】:

    答案似乎是您不使用特征列。 Keras 带有自己的一组图像和文本预处理功能,因此您可以使用它们。

    所以基本上tf.feature_columns 是为高级API 保留的。然后tf.keras.preprocessing() 函数与tf.keras 模型一起使用。

    这里是keras 文档中关于预处理数据部分的链接。 https://keras.io/preprocessing/text/

    这是另一个 Stackoverflow 帖子,其中包含此方法的示例。

    Add Tensorflow pre-processing to existing Keras model (for use in Tensorflow Serving)

    【讨论】:

      【解决方案2】:

      keras 函数式 api 是一种可行的方法,但如果您想使用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')
      ])
      

      【讨论】:

        猜你喜欢
        • 2023-03-15
        • 1970-01-01
        • 2018-10-16
        • 2019-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-11
        相关资源
        最近更新 更多