TensorFlow函數(shù):tf.sparse_concat

2018-02-26 14:43 更新

tf.sparse_concat 函數(shù)

sparse_concat(
    axis,
    sp_inputs,
    name=None,
    expand_nonconcat_dim=False,
    concat_dim=None
)

定義在:tensorflow/python/ops/sparse_ops.py.

參見(jiàn)指南:稀疏張量>操縱

沿著指定維度連接一個(gè) SparseTensor 的列表.

串聯(lián)是關(guān)于每個(gè)稀疏輸入的稠密版本的.假定每個(gè)輸入是 SparseTensor,其中,元素沿著增加的維數(shù)排序.

如果 expand_nonconcat_dim 為 False,則所有輸入的形狀必須匹配,但 concat 維度除外.如果 expand_nonconcat_dim 為 True,則允許輸入的形狀在所有輸入中變化.

indices,values 和 shapes 列表必須具有相同的長(zhǎng)度.

如果 expand_nonconcat_dim 為 False,則輸出形狀與輸入相同,除了 concat 維度外,它是輸入大小沿該維度的總和.

如果 expand_nonconcat_dim 為 True,則沿非 concat 維度的輸出形狀將擴(kuò)展為所有輸入中最大的輸出形狀,并且它是連續(xù)維度上輸入大小的總和.

輸出元素將采用沿維數(shù)增加的方式保留排序順序.

這個(gè)操作在 O(M log M) 及時(shí)運(yùn)行,其中 M 是所有輸入中非空值的總數(shù).這是因?yàn)樾枰M(jìn)行內(nèi)部排序才能在任意維度上高效地進(jìn)行連接.

例如,如果 axis = 1 并且輸入如下:

sp_inputs[0]: shape = [2, 3]
[0, 2]: "a"
[1, 0]: "b"
[1, 1]: "c"

sp_inputs[1]: shape = [2, 4]
[0, 1]: "d"
[0, 2]: "e"

那么輸出將是:

shape = [2, 7]
[0, 2]: "a"
[0, 4]: "d"
[0, 5]: "e"
[1, 0]: "b"
[1, 1]: "c"

從圖形上來(lái)說(shuō),這相當(dāng)于:

[    a] concat [  d e  ] = [    a   d e  ]
[b c  ]        [       ]   [b c          ]

另一個(gè)例子,如果 axis = 1 并且輸入如下:

sp_inputs[0]: shape = [3, 3]
[0, 2]: "a"
[1, 0]: "b"
[2, 1]: "c"

sp_inputs[1]: shape = [2, 4]
[0, 1]: "d"
[0, 2]: "e"

如果 expand_nonconcat_dim = False,則會(huì)導(dǎo)致錯(cuò)誤.但是,如果 expand_nonconcat_dim = True,則會(huì)導(dǎo)致如下情況:

shape = [3, 7]
[0, 2]: "a"
[0, 4]: "d"
[0, 5]: "e"
[1, 0]: "b"
[2, 1]: "c"

從圖形上來(lái)說(shuō),這相當(dāng)于做:

[    a] concat [  d e  ] = [    a   d e  ]
[b    ]        [       ]   [b            ]
[  c  ]                    [  c          ]

函數(shù)參數(shù):

  • axis:連接沿著的維度.必須在范圍 [-rank,rank)中,其中rank是每個(gè)輸入 SparseTensor 中的維數(shù).
  • sp_inputs:SparseTensor要連接的列表.
  • name:返回張量的名稱前綴(可選).
  • expand_nonconcat_dim:是否允許擴(kuò)展非連續(xù)的維度.默認(rèn)為False.
  • concat_dim:軸的舊(已棄用)名稱.

返回值:

tf.sparse_concat函數(shù)返回具有連接輸出的 SparseTensor.

可能引發(fā)的異常:

  • TypeError:如果 sp_inputs 不是一個(gè) SparseTensor 列表,則引發(fā)此異常.
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)