このページでは、テキスト入力を受け入れる TF1 Hub 形式 のモジュ―ルで実装すべき一般的なシグネチャを説明します。(TF2 SavedModel 形式については、同様の SavedModel API をご覧ください。)
テキスト特徴量ベクトル
テキスト特徴量ベクトルモジュールは、テキスト特徴量から密なベクトル表現を作成します。このモジュールは形状 [batch_size]
の文字列のバッチを受け入れ、それらを形状 [batch_size, N]
の float32
テンソルにマッピングします。これは、N
次元へのテキスト埋め込みと呼ばれることがあります。
基本的な使い方
embed = hub.Module("path/to/module")
representations = embed([
"A long sentence.",
"single-word",
"http://example.com"])
特徴量カラムの使い方
feature_columns = [
hub.text_embedding_column("comment", "path/to/module", trainable=False),
]
input_fn = tf.estimator.inputs.numpy_input_fn(features, labels, shuffle=True)
estimator = tf.estimator.DNNClassifier(hidden_units, feature_columns)
estimator.train(input_fn, max_steps=100)
補足
モジュールはさまざまなドメインやタスクで事前にトレーニングされているため、すべてのテキスト特徴量ベクトルモジュールが特定の問題に適しているとは限りません(モジュールの一部が単一の言語でトレーニングされている場合など)。
このインターフェースでは、TPU でのテキスト表現のファインチューニングは行えません。これには、文字列の処理とトレーニング対象変数のインスタンス化を同時に行うモジュールが必要となるためです。