溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python中@運(yùn)算符的用法

發(fā)布時(shí)間:2021-05-27 10:22:15 來(lái)源:億速云 閱讀:271 作者:小新 欄目:開(kāi)發(fā)技術(shù)

小編給大家分享一下python中@運(yùn)算符的用法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

在看fastai的代碼時(shí),看到這么一段:

n=100
x = torch.ones(n,2) 
x[:,0].uniform_(-1.,1)
x[:5]
a = tensor(3.,2)
y = x@a + torch.rand(n)

這里面有個(gè)@符號(hào)不知道是啥意思?

于是百度搜了一下,都是說(shuō)@xxx是注解或者裝飾器,明顯不是這段代碼的場(chǎng)景嘛!

于是又Google了一下,原來(lái)這個(gè)@是Python 3.5之后加入的矩陣乘法運(yùn)算符,終于明白了!

補(bǔ)充:python矩陣乘積運(yùn)算(multiply/maumul/*/@)解析

在訓(xùn)練數(shù)據(jù)時(shí)經(jīng)常涉及到矩陣運(yùn)算,有段時(shí)間沒(méi)有練習(xí)過(guò)了,手便生疏了。

今天重新測(cè)了一把,python中各類矩陣運(yùn)算舉例如下,可以清楚的看到tf.matmul(A,C)=np.dot(A,C)= A@C都屬于叉乘,而tf.multiply(A,C)= A*C=A?C屬于點(diǎn)乘。

python中@運(yùn)算符的用法

Python測(cè)試編碼如下:

import tensorflow as tf
import numpy as np

a = np.array([[1,2],[3,4]])
b = np.array([5,6])
c = np.array([[5,6],[7,8]])
print('a:'+'\n',a)
print('b:'+'\n',b)
print('c:'+'\n',c)
#叉乘
d1=a@c
d2=tf.matmul(a,c)
d3=np.dot(a,c)
#點(diǎn)乘
f1=a*c
f2=tf.multiply(a,c)

with tf.compat.v1.Session() as sess:
    print('d1:叉乘a@c' + '\n', d1)
    print('d2:叉乘matmul(a,c)' + '\n', sess.run(d2))
    print('d3:叉乘dot(a,c)' + '\n', d3)
    print('f1:點(diǎn)乘a*c' + '\n', f1)
    print('f2:點(diǎn)乘multiply(a,c)' + '\n', sess.run(f2))

測(cè)試結(jié)果如下:

python中@運(yùn)算符的用法

以上是“python中@運(yùn)算符的用法”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI