python 中的@運算符使用
在看fastai的代碼時,看到這么一段:
n=100 x = torch.ones(n,2) x[:,0].uniform_(-1.,1) x[:5] a = tensor(3.,2) y = x@a + torch.rand(n)
這里面有個@符號不知道是啥意思?
于是百度搜了一下,都是說@xxx是注解或者裝飾器,明顯不是這段代碼的場景嘛!
于是又Google了一下,原來這個@是Python 3.5之后加入的矩陣乘法運算符,終于明白了!
補充:python矩陣乘積運算(multiply/maumul/*/@)解析
在訓(xùn)練數(shù)據(jù)時經(jīng)常涉及到矩陣運算,有段時間沒有練習(xí)過了,手便生疏了。
今天重新測了一把,python中各類矩陣運算舉例如下,可以清楚的看到tf.matmul(A,C)=np.dot(A,C)= A@C都屬于叉乘,而tf.multiply(A,C)= A*C=A∙C屬于點乘。
Python測試編碼如下:
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) #點乘 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:點乘a*c' + '\n', f1) print('f2:點乘multiply(a,c)' + '\n', sess.run(f2))
測試結(jié)果如下:
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python標(biāo)準庫壓縮包模塊zipfile和tarfile詳解(常用標(biāo)準庫)
在我們常用的系統(tǒng)windows和Linux系統(tǒng)中有很多支持的壓縮包格式,包括但不限于以下種類:rar、zip、tar,這篇文章主要介紹了python標(biāo)準庫壓縮包模塊zipfile和tarfile詳解(常用標(biāo)準庫),需要的朋友可以參考下2022-06-06Python 余弦相似度與皮爾遜相關(guān)系數(shù) 計算實例
今天小編就為大家分享一篇Python 余弦相似度與皮爾遜相關(guān)系數(shù) 計算實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12Python線性擬合實現(xiàn)函數(shù)與用法示例
這篇文章主要介紹了Python線性擬合實現(xiàn)函數(shù)與用法,結(jié)合實例形式分析了Python使用線性擬合算法與不使用線性擬合算法的相關(guān)算法操作技巧,需要的朋友可以參考下2018-12-12pytorch常用數(shù)據(jù)類型所占字節(jié)數(shù)對照表一覽
這篇文章主要介紹了pytorch常用數(shù)據(jù)類型所占字節(jié)數(shù)對照表一覽,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05Python在字典中獲取帶權(quán)重的隨機值實現(xiàn)方式
這篇文章主要介紹了Python在字典中獲取帶權(quán)重的隨機值,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-11-11