pytorch之expand,gather,squeeze,sum,contiguous,softmax,max,argmax
目錄
gather
torch.gather(input,dim,index,out=None)。對指定維進行索引。比如4*3的張量,對dim=1進行索引,那麼index的取值範圍就是0~2.
input是一個張量,index是索引張量。input和index的size要麼全部維度都相同,要麼指定的dim那一維度值不同。輸出為和index大小相同的張量。
import torch a=torch.tensor([[.1,.2,.3], [1.1,1.2,1.3], [2.1,2.2,2.3], [3.1,3.2,3.3]]) b=torch.LongTensor([[1,2,1], [2,2,2], [2,2,2], [1,1,0]]) b=b.view(4,3) print(a.gather(1,b)) print(a.gather(0,b)) c=torch.LongTensor([1,2,0,1]) c=c.view(4,1) print(a.gather(1,c))
輸出:
tensor([[ 0.2000, 0.3000, 0.2000],
[ 1.3000, 1.3000, 1.3000],
[ 2.3000, 2.3000, 2.3000],
[ 3.2000, 3.2000, 3.1000]])
tensor([[ 1.1000, 2.2000, 1.3000],
[ 2.1000, 2.2000, 2.3000],
[ 2.1000, 2.2000, 2.3000],
[ 1.1000, 1.2000, 0.3000]])
tensor([[ 0.2000],
[ 1.3000],
[ 2.1000],
[ 3.2000]])
squeeze
將維度為1的壓縮掉。如size為(3,1,1,2),壓縮之後為(3,2)
import torch
a=torch.randn(2,1,1,3)
print(a)
print(a.squeeze())
輸出:
tensor([[[[-0.2320, 0.9513, 1.1613]]],
[[[ 0.0901, 0.9613, -0.9344]]]])
tensor([[-0.2320, 0.9513, 1.1613],
[ 0.0901, 0.9613, -0.9344]])
expand
擴充套件某個size為1的維度。如(2,2,1)擴充套件為(2,2,3)
import torch
x=torch.randn(2,2,1)
print(x)
y=x.expand(2,2,3)
print(y)
輸出:
tensor([[[ 0.0608],
[ 2.2106]],
[[-1.9287],
[ 0.8748]]])
tensor([[[ 0.0608, 0.0608, 0.0608],
[ 2.2106, 2.2106, 2.2106]],
[[-1.9287, -1.9287, -1.9287],
[ 0.8748, 0.8748, 0.8748]]])
sum
size為(m,n,d)的張量,dim=1時,輸出為size為(m,d)的張量
import torch
a=torch.tensor([[[1,2,3],[4,8,12]],[[1,2,3],[4,8,12]]])
print(a.sum())
print(a.sum(dim=1))
輸出:
tensor(60)
tensor([[ 5, 10, 15],
[ 5, 10, 15]])
contiguous
返回一個記憶體為連續的張量,如本身就是連續的,返回它自己。一般用在view()函式之前,因為view()要求呼叫張量是連續的。可以通過is_contiguous檢視張量記憶體是否連續。
import torch
a=torch.tensor([[[1,2,3],[4,8,12]],[[1,2,3],[4,8,12]]])
print(a.is_contiguous)
print(a.contiguous().view(4,3))
輸出:
<built-in method is_contiguous of Tensor object at 0x7f4b5e35afa0>
tensor([[ 1, 2, 3],
[ 4, 8, 12],
[ 1, 2, 3],
[ 4, 8, 12]])
softmax
假設陣列V有C個元素。對其進行softmax等價於將V的每個元素的指數除以所有元素的指數之和。這會使值落在區間(0,1)上,並且和為1。
import torch
import torch.nn.functional as F
a=torch.tensor([[1.,1],[2,1],[3,1],[1,2],[1,3]])
b=F.softmax(a,dim=1)
print(b)
輸出:
tensor([[ 0.5000, 0.5000],
[ 0.7311, 0.2689],
[ 0.8808, 0.1192],
[ 0.2689, 0.7311],
[ 0.1192, 0.8808]])
max
返回最大值,或指定維度的最大值以及index
import torch
a=torch.tensor([[.1,.2,.3],
[1.1,1.2,1.3],
[2.1,2.2,2.3],
[3.1,3.2,3.3]])
print(a.max(dim=1))
print(a.max())
輸出:
(tensor([ 0.3000, 1.3000, 2.3000, 3.3000]), tensor([ 2, 2, 2, 2]))
tensor(3.3000)
argmax
返回最大值的index
import torch
a=torch.tensor([[.1,.2,.3],
[1.1,1.2,1.3],
[2.1,2.2,2.3],
[3.1,3.2,3.3]])
print(a.argmax(dim=1))
print(a.argmax())
輸出:
tensor([ 2, 2, 2, 2])
tensor(11)
相關推薦
pytorch之expand,gather,squeeze,sum,contiguous,softmax,max,argmax
目錄 sum max gather torch.gather(input,dim,index,out=None)。對指定維進行索引。比如4*3的張量,對dim=1進行索引,那麼index的取值範圍就是0~2. input是一個張量,index
MPI之聚合通訊-Scatter,Gather,Allgather
一、 MPI_Scatter MPI_Scatter與MPI_Bcast非常相似,都是一對多的通訊方式,不同的是後者的0號程序將相同的資訊傳送給所有的程序,而前者則是將一段array 的不同部分發送給所有的程序,其區別可以用下圖概括: 0號程序分發資料的時候是根據程序的編
雲計算之路-阿裏雲上:彈性伸縮無服務器可彈,已有服務器無兵可援
cit spec -h ebs request sca 天上 chan binding 活動起因: A scheduled task executes scaling rule "eBsJ2veNkwJkcGinmICVH1Q", changing the Total
python 之操作redis數據庫(非關系型數據庫,k-v)
都是 ont sql 失效 font cal post nan 所有 數據庫: 1. 關系型數據庫 表結構 2. 非關系型數據庫 nosql (k - v 速度快),常用的時以下三種: memcache 存在內存裏 redis 存在內存裏 mangod
《SpringBoot從入門到放棄》之第(十)篇——整合Redis(SpringBoot 2.0 版本),寫於2018年10月24號程式設計師節。
在 pom.xml 配置中新增 jar 依賴: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-d
pytorch筆記:03)softmax和log_softmax,以及CrossEntropyLoss
softmax在神經網路裡面比較常見,簡而言之,就是多分類的概率輸出 sotfmax(xi)=exp(xi)∑jexp(xj) s o t
請實現一個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。
boolean flag1 = true ; //利用標誌位來控制順序,為true,則從左到右的順序,為false則相反
素有高冷之稱,曾被微軟放言取代馮氏結構的FPGA,被阿里雲玩“活”了
對於專業人士來說,FPGA (現場可程式設計門陣列)並不陌生,由於其硬體並行加速能力和可程式設計特性,在傳統通訊領域和IC設計領域可謂是大放異彩,一直都被廣泛使用。但是,大部分人還不是太瞭解它。 開發門檻過高,硬體加速演算法的釋出和部署保護要求非常高,FPGA
《程式設計珠璣》程式碼之路7:這個演算法全世界程式設計師16年才寫對,你肯定想不到竟然是這個
這篇部落格要講的演算法,是個有故事的演算法,大家一定會喜歡的: 有這麼一個演算法: 1:業界巨佬經典鉅著《程式設計珠璣》的作者,在課堂上給出了思想,不限時間讓程式設計師們實現,所有的程式設計師在提交的時候都覺得自己寫的是對的,然而結果是即使是高階程式設計師,90%以上的人都寫錯了。 2:
C#之小練③(C#標籤的使用:連續輸入五個人年齡,如果錄入有誤則報異常)
原題目:迴圈錄入5個人的年齡並計算平均年齡,如果錄入的資料出現負數或大於100的數,則立即停止輸入並報錯。 個人感覺這個解題思路的重點不在於迴圈語句的使用,不在於範圍的判定,而是在於標籤的使用,之前學VB時也使用過標籤,但當時並沒有現在這麼深
《程式設計珠璣》程式碼之路7:這演算法全世界程式設計師16年才寫對,你肯定想不到竟然是這個
這篇部落格要講的演算法,是個有故事的演算法,大家一定會喜歡的: 有這麼一個演算法: 1:業界巨佬經典鉅著《程式設計珠璣》的作者,在課堂上給出了思想,不限時間讓程式設計師們實現,所有的程式設計師在提交的時候都覺得自己寫的是對的,然而結果是即使是高階程式設計師,90%以上的人
百度之星程式設計大賽的資格賽 1001調查問卷(用二進位制位運算,暴力列舉想要的那幾個位置上的數)
Problem Description 度度熊為了完成畢業論文,需要收集一些資料來支撐他的論據,於是設計了一份包含 mm 個問題的調查問卷,每個問題只有 'A' 和 'B' 兩種選項。 將問卷散發出去之後,度度熊收到了 nn 份互不相同的問卷,在整理結果的時候,他發現可以
torch.linspace,unsqueeze()以及squeeze()函式
1.torch.linspace(start,end,steps=100,dtype) 作用是返回一個一維的tensor(張量),其中dtype是返回的資料型別。 import torch print(torch.linspace(-1,1,5)) 輸出結果為:tensor([-1.0000,
torch.linspace,unsqueeze()以及squeeze()函數
image linspace 數據類型 class start .com 增加 spa res 1.torch.linspace(start,end,steps=100,dtype) 作用是返回一個一維的tensor(張量),其中dtype是返回的數據類型。 import
網易面試之對於一個整數X,定義操作rev(X)為將X按數位翻轉過來,並且去除掉前導0
對於一個整數X,定義操作rev(X)為將X按數位翻轉過來,並且去除掉前導0。例如: 如果 X = 123,則rev(X) = 321; 如果 X = 100,則rev(X) = 1.現在給出整數x和y
面試題之final,finally和finalize的區別以及如果catch裡面有return語句,請問finally裡面的程式碼還會執行嗎?
/* * 面試題: * 1:final,finally和finalize的區別 * final:最終的意思,可以修飾類,成員變數,成員方法 * 修飾類,類不能被繼承 * 修飾變數,變數是常量 * 修飾方法,方法不能
【fifan的專欄】夫君子之行,靜以修身,儉以養德。非淡泊無以明志,非寧靜無以致遠。夫學須靜也,才須學也,非學無以廣才,非志無以成學。淫慢則不能勵精,險躁則不能治性。年與時馳,意與日去,遂成枯落,多不接世,悲守窮廬,將復何及!
夫君子之行,靜以修身,儉以養德。非淡泊無以明志,非寧靜無以致遠。夫學須靜也,才須學也,非學無以廣才,非志無以成學。淫慢則不能勵精,險躁則不能治性。年與時馳,意與日去,遂成枯落,多不接世,悲守窮廬,將復...
資料結構之頭結點連結串列的三種插入方式(頭插法,尾插法,在pos處插入)
建立頭結點 流程:首先建立頭結點表指標併為其分配空間——並將頭結點指向空,防止出現段錯誤。 程式碼: //建立頭結點 Node* Create_List () { //建立頭結點 Node* list = (Node*) malloc(
【為無為,事無事,味無味。】大小,多少,抱怨,以德。圖難乎,其易也;為大乎,其細也;天下之難,作於易;天下之大,作於細。是以聖人終不為大,故能成其大。夫輕諾,必寡信;必多難。是以聖人猶難之,故終無難矣。
每天進步一點點。。。 從2009年畢業到現在,做過Java後臺開發,PL/SQL開發,會編寫shell指令碼,現為兼職開發的MySQL DBA。為人友善誠懇,工作踏實,吃苦耐勞,富有朝氣,激情,以及團隊合作意識。
網易面試題之 牛牛的作業薄上有一個長度為 n 的排列 A,這個排列包含了從1到n的n個數,但是因為一些原因, * 其中有一些位置(不超過 10 個)看不清了,但是牛牛記得這個數列順序對的數量是 k,
package wangyi; /** * Created by Administrator on 2016/12/7. * 牛牛的作業薄上有一個長度為 n 的排列 A,這個排列包含了從1到n的n個數,但是因為一些原因, * 其中有一些位置(不超過 10 個)看不清