【发布时间】:2017-02-11 18:56:41
【问题描述】:
我正在创建一个卷积稀疏自动编码器,我需要将一个充满值的 4D 矩阵(其形状为 [samples, N, N, D])转换为一个稀疏矩阵。
对于每个样本,我有 D NxN 个特征图。我想将每个 NxN 特征图转换为稀疏矩阵,最大值映射为 1,其他所有映射为 0。
我不想在运行时但在 Graph 声明期间这样做(因为我需要使用生成的稀疏矩阵作为其他图形操作的输入),但我不明白如何获取索引来构建稀疏矩阵。
【问题讨论】:
-
你想在 Tensorflow 中还是在 python 中进行这种转换?如果在 python 中这个函数可以帮助你从密集矩阵转换为稀疏矩阵(docs.scipy.org/doc/scipy/reference/generated/…)并且你可以使用 tf.SparseTensor(它使用 coo 格式)来存储每个特征图,并使用列表来存储所有稀疏张量。跨度>
-
具体来说,nonzero() (docs.scipy.org/doc/scipy/reference/generated/…) 可以为您提供非零元素的索引。不确定这是否被认为是运行时方法。这可能是图形声明之前的一些数据预处理。 4D 密集矩阵是在运行时生成的还是只是一些给定的输入数据?
-
我不想在运行时这样做(我知道如何用 numpy 做到这一点),但在图形声明期间(所以使用 Tensorflow)
标签: python graph tensorflow sparse-matrix autoencoder