【发布时间】:2019-11-20 15:48:17
【问题描述】:
我有一个稀疏张量,我将其转换为密集张量。使用tf.sparse.to_dense 从稀疏转换为密集后,我得到如下输出:
我想删除默认值,即零并将其转换为参差不齐的张量,如下所示:
以上两张图片中的数据不同
我浏览了 Tensorflow 文档,但找不到任何方法来做到这一点。我尝试使用boolean_mask,主要问题是为每一行单独计算boolean_mask。
所以,我想知道是否有一种有效的方法来实现这一点。
谢谢。
【问题讨论】:
-
“移除默认值”是什么意思,即移除默认值后你的预期张量是什么样子的?
-
@greeness [[57, 69, 66, 64],[52, 65, 76], [63, 60, 57, 56], ... ] 像这样。
-
scipy.sparse.lil_matrix格式具有这样的data属性 - 一个对象 dtype 列表数组 - 每行一个非零值列表。但是不知道tensorflow sparse有没有这样的东西。 -
这就是所谓的不规则张量。 tensorflow.org/guide/ragged_tensors。不确定您将在下游操作中使用它做什么。您可以使用
tf.RaggedTensor.from_sparse()从您的SparseTensor获取参差不齐的张量。但正如我提到的,不确定这是否对您有帮助。 -
@greeness Tf 曾经有一个 sparse_to_dense 函数 (tensorflow.org/api_docs/python/tf/sparse_to_dense),我们可以在其中提供所需的输出形状。他们弃用了它。
标签: python numpy tensorflow machine-learning