sparse_to_dense
中版本0.7和0.6之间的行为发生了变化,现在需要按字典顺序对索引进行排序。这对我的一些用途来说是一个有点繁重的要求,因为我生成索引的方式与我生成元素的方式(sparse_to_dense
的第三个arg)匹配,并且排序两者都有点麻烦。我看到validate_indices
选项可以设置为False
以忽略此选项。这样做是否安全?为什么要求首先?
答案 0 :(得分:8)
查看tensorflow::sparse::SparseTensor::ToDense<T>()
的当前实现,似乎转换不依赖于索引的顺序。因此,您可以对未排序的sparse_indices
运行tf.sparse_to_dense(sparse_indices, ..., validate_indices=False)
。只要没有重复索引,就会产生一致的结果(否则看起来当前的实现是最后一个作者获胜,但在API中无法保证)。
对于按字典顺序排序的索引的要求似乎是因为希望检查sparse_indices
中没有重复项。您可以通过索引张量的简单扫描(仅考虑行i
和i - 1
)来检查订单属性和是否缺少重复项,而在独立的订单中检查重复项时尚更贵。由于更保守的检查有更大的优势,并且潜在的大的性能下降,我们选择不实施它,但文档在这一点上可能更清楚!