【发布时间】:2017-02-03 20:34:18
【问题描述】:
我有一个正常的前馈网络,它产生一个向量 v。然后将 v 的元素用作稀疏矩阵 M 的非零条目(假设坐标是预定义的)。然后将稀疏矩阵乘以密集向量,并在结果标量上定义损失。我想反向传播损失 w.r.t。网络的权重,这需要通过稀疏矩阵。
这似乎是稀疏矩阵的一个完全合理的用例,但似乎不支持这种功能。事实上,即使调用 tf.gradients(M,[v]) 也会产生错误:
AttributeError: 'SparseTensor' 对象没有属性 'value_index'
我是在做错什么,还是我正确地假设此功能不(还没有?)存在?如果是后者,那么对于这个特定的用例是否有解决方法,而不是用定义的梯度重写所有稀疏张量操作?
【问题讨论】:
标签: python tensorflow sparse-matrix backpropagation