pytorch tensor的合併與分割

2021-10-03 13:27:23 字數 1933 閱讀 9962

import torch
a = torch.rand(30,

6)#a記錄了班上前30個同學的6門考試成績

b = torch.rand(25,

6)#b記錄了班上後30個同學的6門考試成績

torch.cat(

[a,b]

,dim=0)

.shape

torch.size([55, 6])
a = torch.rand(5,

3)#5個同學,a只記錄了4門課的成績

b = torch.rand(5,

2)#還是這5個同學,b記錄了另外2門課的成績

c = torch.rand(5,

1)#還是這5個同學,c記錄了另外1門課的成績

torch.cat(

[a,b,c]

,dim=1)

.shape #合併成一張成績單,包含每個人的6門成績

torch.size([5, 6])
a = torch.rand(30,

6)b = torch.rand(30,

6)torch.stack(

[a,b]

,dim=0)

.shape

torch.size([2, 30, 6])
a = torch.rand(2,

3,4)

b = torch.rand(2,

3,4)

c = torch.rand(2,

3,4)

torch.stack(

[a,b,c]

,dim=1)

.shape

torch.size([2, 3, 3, 4])
a = torch.rand(6,

20,5)

#a表示有6個班級,每個班有20個人,每個人有5門考試成績

a1,a2,a3=a.split(

2,dim=0)

#按照順序,每兩個班級分為一組

print

(a1.shape,a2.shape,a3.shape)

torch.size([2, 20, 5]) torch.size([2, 20, 5]) torch.size([2, 20, 5])
a = torch.rand(6,

20,5)

#a表示有6個班級,每個班有20個人,每個人有5門考試成績

a1,a2,a3=a.split([1

,2,3

],dim=0)

#按照順序,第乙個班級分為一組,第

二、三個班級分成一組,第4、5、6個班級分成一組

print

(a1.shape,a2.shape,a3.shape)

torch.size([1, 20, 5]) torch.size([2, 20, 5]) torch.size([3, 20, 5])
a = torch.rand(6,

20,5)

#a表示有6個班級,每個班有20個人,每個人有5門考試成績

a1,a2,a3=a.chunk(

3,dim=0)

#3表示分成3組tensor

print

(a1.shape,a2.shape,a3.shape)

torch.size([2, 20, 5]) torch.size([2, 20, 5]) torch.size([2, 20, 5])

Pytorch tensor的感知機

單層感知機的主要步驟 單層感知機梯度的推導 要進行優化的是w,對w進行梯度下降 a torch.randn 1,10 a是乙個 1,10 的向量 w torch.randn 1,10,requires grad true w是乙個可導的 1,10 的向量 1.2.經過乙個sigmoid啟用函式 o ...

Pytorch Tensor和tensor的區別

在pytorch中,tensor和tensor都能用於生成新的張量 a torch.tensor 1 2 a tensor 1 2.a torch.tensor 1 2 a tensor 1 2 首先,我們需要明確一下,torch.tensor 是python類,更明確地說,是預設張量型別torch...

pytorch tensor 獲得中間節點的梯度

我們只能指定計算圖的leaf節點的requires grad變數來決定改變量是否記錄梯度,而不能指定它們運算產生的節點的requires grad,它們是否要梯度取決於它們的輸入節點,它們的輸入節點只要有乙個requires grad是true,那麼它的requires grad也是true.x t...