欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pytorch 中的dim的作用范圍詳解

 更新時間:2023年12月05日 12:04:08   作者:mingqian_chu  
ptorch中的dim類似于numpy縱的axis,這篇文章給大家介紹pytorch 中的dim的作用范圍,不同的運算, dim 的作用域都是一樣的思想,本文給大家介紹的非常詳細,需要的朋友參考下吧

dim簡介

pytorch中對tensor的很多操作都涉及到dim(維度的設置),但是,我們總是搞不清楚每個維度代表什么,到底設置幾維,比如sum(求和)、softmax、max(最大值)。

下面看下pytorch 中的dim的作用范圍。

1. 二維矩陣時

不同的運算, dim 的作用域都是一樣的思想;

當數(shù)據(jù)是二維矩陣時, 可以按照下面的思想理解

對于矩陣:
dim=0 按列操作(沿列向下)。
dim=1 按行操作(跨行)。

解釋如下:

dim=0 :這是指張量的第一個維度,通常被視為行。如果您沿此維度應用函數(shù),它將按列處理數(shù)據(jù)。換句話說,該函數(shù)獨立地應用于每一列。

dim=1 :這是指張量的第二維,通常被視為列。當您沿此維度應用函數(shù)時,它會按行處理數(shù)據(jù)。也就是說,該函數(shù)獨立地應用于每一行。

1.1 求和

>> a = torch.Tensor([[1,2,3], [4,5,6]])
>> print(a.shape)
torch.Size([2, 3])
>> print(torch.sum(a, dim=0))
tensor([5., 7., 9.])
>> print(torch.sum(a, dim=1))
tensor([ 6., 15.])

1.2 softmax

dim = 0) #對每一列進行softmax;
dim =1) #對每一行進行softmax;

import torch
import torch.nn.functional as F
x= torch.Tensor( [ [1,2,3,4],[1,2,3,4],[1,2,3,4]])
y1= F.softmax(x, dim = 0) #對每一列進行softmax
print(y1)
y2 = F.softmax(x,dim =1) #對每一行進行softmax
print(y2)
x1 = torch.Tensor([1,2,3,4])
print(x1)
y3 = F.softmax(x1,dim=0) #一維時使用dim=0,使用dim=1報錯
print(y3)
(deeplearning) userdeMBP:pytorch user$ python test.py 
tensor([[0.3333, 0.3333, 0.3333, 0.3333],
        [0.3333, 0.3333, 0.3333, 0.3333],
        [0.3333, 0.3333, 0.3333, 0.3333]])
tensor([[0.0321, 0.0871, 0.2369, 0.6439],
        [0.0321, 0.0871, 0.2369, 0.6439],
        [0.0321, 0.0871, 0.2369, 0.6439]])
tensor([1., 2., 3., 4.])
tensor([0.0321, 0.0871, 0.2369, 0.6439])

2. 三維張量時

當dim=0時, 是對每一維度相同位置的數(shù)值進行softmax運算,和為1
當dim=1時, 是對某一維度的列進行softmax運算,和為1
當dim=2時, 是對某一維度的行進行softmax運算,和為1

import torch 
import torch.nn.functional as F 
input= torch.randn(2,2,3))
print(input)

dim= 0,

dim=1,

dim =2

到此這篇關于pytorch 中的dim 的作用范圍的文章就介紹到這了,更多相關pytorch dim內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論