n=100 x = torch.ones(n,2) x[:,0].uniform_(-1.,1) x[:5] a = tensor(3.,2) y = x@a + torch.rand(n)
于是百度搜了一下,都是說(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中各類(lèi)矩陣運(yùn)算舉例如下,可以清楚的看到tf.matmul(A,C)=np.dot(A,C)= A@C都屬于叉乘,而tf.multiply(A,C)= A*C=A∙C屬于點(diǎn)乘。
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))
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
標(biāo)簽:山東 常州 成都 宿遷 江蘇 蘭州 六盤(pán)水 駐馬店
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python 中的@運(yùn)算符使用》,本文關(guān)鍵詞 python,中的,運(yùn)算符,使用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。