将hub.text_embedding_column与tf.contrib.estimator.RNNClassifier一起使用

时间:2019-01-25 19:27:12

标签: tensorflow tensorflow-estimator tensorflow-hub

我正在尝试将Tensorflow Hub(a word embedding module)与tf.contrib.estimator.RNNClassifier结合使用。

我想要的型号

embedded_text_feature_column = hub.text_embedding_column(
   key="description", 
   module_spec="https://tfhub.dev/google/nnlm-en-dim128/1")

estimator = tf.contrib.estimator.RNNClassifier(
   sequence_feature_columns=[embedded_text_feature_column],
   num_units=[32, 16])

正在运行会返回以下错误:

ValueError: All feature_columns must be of type _SequenceDenseColumn.
You can wrap a sequence_categorical_column with an embedding_column or indicator_column.
Given (
    type <class 'tensorflow_hub.feature_column._TextEmbeddingColumn'>):
    _TextEmbeddingColumn(key='title_description', module_spec=<tensorflow_hub.native_module._ModuleSpec object at 0x7fb0102a5a90>, trainable=False
)

工作模型

使用TF Hub模块可在以下情况下正常工作:

estimator = tf.estimator.DNNClassifier(
    hidden_units=[32, 16],
    feature_columns=[embedded_text_feature_column])

是否可以将nnlm模块与RNNClassifier一起使用?

1 个答案:

答案 0 :(得分:1)

与您所需模型相对应的代码在 Tensorflow Version 1.15 的Google Colab中似乎正常运行。

请在下面找到工作代码:

!pip install tensorflow==1.15

import tensorflow as tf
import tensorflow_hub as hub

embedded_text_feature_column = hub.text_embedding_column(
   key="description", 
   module_spec="https://tfhub.dev/google/nnlm-en-dim128/1")

estimator = tf.contrib.estimator.RNNClassifier(
   sequence_feature_columns=[embedded_text_feature_column],
   num_units=[32, 16])

这是Github Colab Gist的链接。