首页 > 解决方案 > 运算符@在python中的含义是什么

问题描述

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

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

这是一些示例代码:

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

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

标签: pythonpython-3.x

解决方案


大多数情况下 @ 被用作装饰器。但是,在您的情况下,它似乎用于矩阵乘法。

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

x @ y
#equivalent to

dot(x, y)
and

x @= y
#equivalent to

x = dot(x, y)

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


推荐阅读