我试图运行python代码。这段代码有一个' @' (在)运营商。我之前从未见过它,Google也没有回复。
init = model.potentials[key].init_weights(model)
if init.ndim==2:
U, S, Vt = np.linalg.svd(init, False)
init = U@Vt
它说出以下错误:
init = U@Vt
^
SyntaxError: invalid syntax
我使用Python 2.7编译它。有人知道这个算子吗?
答案 0 :(得分:6)
@
运算符是在PEP 465中提出的,并被Python 3.5采用。你不能使用它,因为你使用的是较旧的Python分支。它用于乘以矩阵(通常,但实际上你可以使@
做任何事情)。如果您正在使用NumPy数组,则可以使用numpy.dot()
,如下所示:
init = model.potentials[key].init_weights(model)
if init.ndim==2:
U, S, Vt = np.linalg.svd(init, False)
init = np.dot(U, Vt)