Equivalent for np.add.at in tensorflow

后端 未结 2 818
一整个雨季
一整个雨季 2021-01-21 07:10

How do I convert a np.add.at statement into tensorflow?

np.add.at(dW, self.x.ravel(), dout.reshape(-1, self.D))

Edit

s

2条回答
  •  佛祖请我去吃肉
    2021-01-21 07:54

    For np.add.at, you probably want to look at tf.SparseTensor, which represents a tensor by a list of values and a list of indices (which is more suitable for sparse data, hence the name).

    So for your example:

    np.add.at(dW, self.x.ravel(), dout.reshape(-1, self.D))
    

    that would be (assuming dW, x and dout are tensors):

    tf.sparse_add(dW, tf.SparseTensor(x, tf.reshape(dout, [-1])))
    

    This is assuming x is of shape [n, nDims] (i.e. x is a 'list' of n indices, each of dimension nDims), and dout has shape [n].

提交回复
热议问题