【问题标题】:How to index sparse tensors in TensorFlow?如何在 TensorFlow 中索引稀疏张量?
【发布时间】:2017-05-02 07:24:31
【问题描述】:

有没有办法像密集张量一样索引稀疏张量的单元格/部分?

# dens_tensor.shape = [10, 10, 10]
dense_cell = dense_tensor[0,0,1]

如果没有,有人知道索引稀疏张量的解决方法吗?

【问题讨论】:

  • 我会尝试 tf.sparse_to_dense 然后使用常规索引并希望 TF 会优化它。
  • 密集张量时遇到内存问题。

标签: python tensorflow sparse-matrix matrix-indexing


【解决方案1】:

SparseTensor 有一个名为 indices 的字段,它允许您获得维度 (N, ndims) 的二维张量,其中 N = 稀疏矩阵中的非零条目数,ndims = 稀疏矩阵的维度.

鉴于这个二维张量,您当然可以在张量中搜索所需的索引。 AFAIK,tensorflow 没有这样的搜索,但您可以在 2D 张量上执行 session.run(),然后在此 2D numpy 数组 (https://stackoverflow.com/a/25823710/5249801) 中搜索您的索引 (0, 0, 1)。

如果您在 numpy 数组 tf.Session().run(sparse_matrix.indices) 中找到所需的索引 (0, 0, 1),例如索引 x,那么您要查找的值也在密集 2D 中的索引 x张量sparse_matrix.values

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 2017-02-11
    • 2012-01-03
    • 1970-01-01
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多