sparse_to_dense 要求索引在 0.7 中按字典顺序排序
sparse_to_dense requires indices to be lexicographically sorted in 0.7
sparse_to_dense
版本 0.7 和 0.6 之间的行为发生了变化,现在需要按字典顺序对索引进行排序。这对我的一些用途来说是一个有点繁重的要求,因为我生成索引的方式与我生成元素的方式相匹配(sparse_to_dense
的第三个参数)并且对两者进行排序有点麻烦。我看到 validate_indices
选项可以设置为 False
来忽略它。这样做安全吗?为什么首先要有这个要求?
查看 tensorflow::sparse::SparseTensor::ToDense<T>()
, it seems that the conversion does not depend on the order of indices. Therefore, you can run tf.sparse_to_dense(sparse_indices, ..., validate_indices=False)
在未排序 sparse_indices
上的当前实现。只要没有重复的索引,就会产生一致的结果(否则看起来当前的实现是最后一个写入者获胜,但这在 API 中不能保证)。
看起来需要按字典顺序排序的索引是因为希望检查 sparse_indices
中没有重复项。您可以通过对索引张量进行简单扫描(仅考虑行 i
和 i - 1
)来检查 属性 和 不存在重复项的顺序,而以独立于顺序的方式检查重复项的成本更高。由于更保守的检查的上行空间有限,并且可能存在较大的性能下降,我们选择不实施它,但文档在这一点上可能会更清楚!
sparse_to_dense
版本 0.7 和 0.6 之间的行为发生了变化,现在需要按字典顺序对索引进行排序。这对我的一些用途来说是一个有点繁重的要求,因为我生成索引的方式与我生成元素的方式相匹配(sparse_to_dense
的第三个参数)并且对两者进行排序有点麻烦。我看到 validate_indices
选项可以设置为 False
来忽略它。这样做安全吗?为什么首先要有这个要求?
查看 tensorflow::sparse::SparseTensor::ToDense<T>()
, it seems that the conversion does not depend on the order of indices. Therefore, you can run tf.sparse_to_dense(sparse_indices, ..., validate_indices=False)
在未排序 sparse_indices
上的当前实现。只要没有重复的索引,就会产生一致的结果(否则看起来当前的实现是最后一个写入者获胜,但这在 API 中不能保证)。
看起来需要按字典顺序排序的索引是因为希望检查 sparse_indices
中没有重复项。您可以通过对索引张量进行简单扫描(仅考虑行 i
和 i - 1
)来检查 属性 和 不存在重复项的顺序,而以独立于顺序的方式检查重复项的成本更高。由于更保守的检查的上行空间有限,并且可能存在较大的性能下降,我们选择不实施它,但文档在这一点上可能会更清楚!