2016-02-19 24 views
5

有0.7版本和0.6 sparse_to_dense之間行爲的變化,現在需要將字典順序排序的指標進行字典序排序。這對我的一些用途來說有點繁重,因爲我生成索引的方式與我生成元素的方式(sparse_to_dense的第三個參數)相匹配,並且排序都有點麻煩。我發現validate_indices選項可以設置爲False來忽略這一點。這樣做是否安全?爲什麼要求在第一位?sparse_to_dense需要指數在0.7

回答

6

縱觀目前實施tensorflow::sparse::SparseTensor::ToDense<T>(),似乎轉換不依賴指數的順序。因此,您可以在未排序的sparse_indices上運行tf.sparse_to_dense(sparse_indices, ..., validate_indices=False)。只要沒有重複的索引(否則它看起來像當前的實現是上次作者獲勝,但在API中不保證),就會產生一致的結果。

它看起來像字典順序排序指標的要求,源於一個願望,檢查是否有在sparse_indices沒有重複。你可以用一個簡單的掃描過的指數張量(僅考慮行ii - 1)檢查順序屬性沒有重複的,而在訂單無關的方式是更昂貴的重複檢查。由於較爲保守的支票存在有限的上行空間,並且可能會出現較大的業績下行,所以我們選擇不實施,但文檔在這一點上可能會更清晰!

+1

感謝您的澄清。這適用於我的目的。如果規範更新以反映'validate_indices = False',那麼傳入非冗餘未排序索引就可以了,因爲我會依賴這種行爲,如果它在沒有警告的情況下更改就會出現問題。 –