python 中运算符 @ 的含义是什么

Par*_*dox -2 python python-3.x

我正在阅读某人的代码,其中出现了运算符“@”(事实上,我什至不确定@是否是运算符)。

我四处寻找,却找不到任何线索。我想这是一些高级用法。

这是一些示例代码:

hidden = self.adj_norm @ tf.sparse_tensor_dense_matmul(hidden, w) + b

hidden = self.adj_norm @ hidden @ w + b

final_output = self.adj_norm @ tf.sparse_tensor_dense_matmul(final_output, w) + b

final_output = self.adj_norm @ final_output @ w + b
Run Code Online (Sandbox Code Playgroud)

有人可以解释或提供一些参考资料,我可以检查“@”的用法吗?

Yas*_*han 5

大多数情况下@用作装饰器。然而,就您而言,它似乎用于矩阵乘法。

在 python 矩阵乘法中,x @ y调用x.__matmul__(y)or:

x @ y
#equivalent to

dot(x, y)
and

x @= y
#equivalent to

x = dot(x, y)
Run Code Online (Sandbox Code Playgroud)

Dot是Numpy中与x和y的矩阵乘法函数。