簡體   English   中英

Tensorflow:如何通過索引訪問稀疏張量值

[英]Tensorflow: How to access sparse tensor value by index

我想在恆定的訪問時間內通過索引訪問稀疏張量的值。 例如,如果我的稀疏張量表示為:

sparse = tf.SparseTensor(indices=[[0, 0], [1, 2]], values=[1, 3], dense_shape=[3, 4])

我想要類似的操作:

assert sparse[0,0] == 1
assert sparse[1,2] == 3

有沒有簡單的方法可以做到這一點? 我已經看到過類似的示例,其中tf.where與tf.gather結合使用。 但是,這似乎是訪問這些值的一種非常低效的方式,因為我現在(在最壞的情況下)必須搜索整個索引張量才能找到匹配項(隨張量中值的數量線性增長) ,而不是固定的訪問時間。

Tensorflow中的稀疏張量以COOrdinate格式存儲,這在O(1)時間內無法通過索引或切片進行有效訪問,因此在恆定的訪問時間內無法獲得價值。 順便說一句,您可以使用tf.sparse_slice通過索引訪問,這比將tf.wheretf.gather一起使用更簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM