Skip to main content
 首页 » 编程设计

python之相当于 tensorflow 中的 np.add.at

2024年10月17日29lexus

如何将 np.add.at 语句转换为 tensorflow?

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

编辑

self.dW.shape 为(V, D), self.D.shape 为(N, D) self.x.size 为N

请您参考如下方法:

对于 np.add.at,您可能想查看 tf.SparseTensor ,它通过值列表和索引列表表示张量(更适合稀疏数据,因此得名)。

所以对于你的例子:

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

那将是(假设 dW、x 和 dout 是张量):

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

这是假设 x 的形状是 [n, nDims](即 x 是 n 个索引的“列表”,每个维度 nDims),dout 的形状为 [n]。