tensorflowはexpand_dimsとsqueezeを使用して、テンソルの次元を拡張および圧縮します



Tensorflow Uses Expand_dims



テキストマイニングにテンソルフローを使用する場合、多くの場合、ディメンションの拡張と圧縮が必要になります。たとえば、テキストの埋め込み操作が完了した後、畳み込み操作を実行する場合は、埋め込みベクトルの次元を展開し、[batch_size、embedding_dims]を[batch_size、embedding_dims、1]に展開し、tfを使用する必要があります。 .expand_dims(input、-1)を実現できます。逆に、squeeze(input、-1)またはtf.squeeze(input)を使用して3番目の次元を削除します。

  • tf.expand_dims()
  • tf.squeeze()

tf.expand_dims()

tf.expand_dims(input、axis = None、name = None、dim = None)



  • 軸の位置に寸法を追加します。
  • テンソル入力が与えられると、この操作は入力形状の寸法インデックス軸にサイズ1を挿入します。軸に負の数を指定すると、寸法インデックス軸はゼロから始まり、最後から後ろにカウントされます。
  • この操作は、単一の要素にバルク寸法を追加する場合に役立ちます。たとえば、単一の形状[高さ、幅、チャネル]がある場合、expand_dims(image、0)を使用して1つの画像にすることができます。これにより、形状[1、高さ、幅、チャネル]が作成されます。
# 't' is a tensor of shape [2] shape(expand_dims(t, 0)) ==> [1, 2] shape(expand_dims(t, 1)) ==> [2, 1] shape(expand_dims(t, -1)) ==> [2, 1] # 't2' is a tensor of shape [2, 3, 5] shape(expand_dims(t2, 0)) ==> [1, 2, 3, 5] shape(expand_dims(t2, 2)) ==> [2, 3, 1, 5] shape(expand_dims(t2, 3)) ==> [2, 3, 5, 1]

tf.squeeze()

tf.squeeze(input、axis = None、name = None、squeeze_dims = None)

  • 直接の例
# 't' is a tensor of shape [1, 2, 1, 3, 1, 1] shape(squeeze(t)) ==> [2, 3] # 't' is a tensor of shape [1, 2, 1, 3, 1, 1] shape(squeeze(t, [2, 4])) ==> [1, 2, 3, 1]