TensorFlow函數(shù):tf.sparse_reset_shape

2018-03-06 10:49 更新

tf.sparse_reset_shape 函數(shù)

sparse_reset_shape(
    sp_input,
    new_shape=None
)

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

參見指南:稀疏張量>操縱

將帶有索引和值的 SparseTensor 的形狀重置為未更改.

如果 new_shape 是 None,則返回 sp_input 的副本, 其形狀重置為 sp_input 的緊邊界框.如果 sp_input 沒有值,則這將是一個由全零組成的形狀.

如果提供 new_shape,則它在所有維度中必須大于或等于 sp_input 的形狀.當(dāng)滿足這個條件時,返回的 SparseTensor 將其形狀重置為 new_shape,并將其索引和值與 sp_input 保持不變.

例如:

考慮一個形狀為 [2,3,5] 的 sp_input,如下所示:

[0, 0, 1]: a
[0, 1, 0]: b
[0, 2, 2]: c
[1, 0, 3]: d
  • 將 new_shape 設(shè)置為 [3,7] 是錯誤的,因為這代表了秩為2的張量,而 sp_input 的秩為3.這可能是圖形構(gòu)造期間的 ValueError(如果兩個形狀都已知)或運(yùn)行時 OpError.
  • 將 new_shape 設(shè)置為 [2,3,6] 會很好,因為與原始形狀 [2,3,5] 相比,每個維度的形狀都較大或相等.
  • 另一方面,將 new_shape 設(shè)置為 [2,3,4] 也是一個錯誤:第三個維度小于原始形狀 [2,3,5](并且 InvalidArgumentError 將會提高).
  • 如果 new_shape 是 None,則返回的 SparseTensor 將具有一個形狀 [2,3,4],這是 sp_input 的一個緊密的邊界框.

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

  • sp_input:輸入的 SparseTensor.
  • new_shape:無或表示返回的 SparseTensor的新形狀的矢量.

函數(shù)返回:

該函數(shù)返回一個從 input_sp 中未做更改的 SparseTensor 指數(shù)和值.如果設(shè)置的話,它的形狀是 new_shape.否則,它是 input_sp 的緊密邊界框.

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

  • TypeError:如果 sp_input 不是 SparseTensor.
  • ValueError:如果 new_shape 表示的張量與 sp_input 的秩不同(如果在構(gòu)建圖形時已知形狀).
  • ValueError:如果 new_shape 在圖形構(gòu)建過程中確定維度太小.
  • OpError:如果 new_shape 的維度太小.如果在圖形構(gòu)建期間未知形狀,并且在運(yùn)行期間發(fā)現(xiàn)秩不匹配.
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號