pytorch學習1 tensor的操作

2021-09-09 06:56:26 字數 2162 閱讀 9425

tensor操作中的api和numpy非常相似

x = torch.ones(2,

2)print

(x)x.

type()

# 將其轉換為整型

x = x.

long()

print

(x)# 再將其轉回float

x = x.

float()

print

(x)x = torch.randn(4,

3)print

(x)# 沿著行取最大值

max_value, max_idx = torch.

max(x, dim=1)

# 沿著行對x求和

sum_x = torch.

sum(x, dim=1)

print

(sum_x)

print

(x.shape)

x = x.unsqueeze(0)

print

(x.shape)

> torch.size([4

,3])

> torch.size([1

,4,3

])x = x.unsqueeze(1)

# 在第二維增加

print

(x.shape)

> torch.size([1

,1,4

,3])

x = x.squeeze(0)

# 減少第一維

print

(x.shape)

> torch.size([1

,4,3

])x = x.squeeze(

)print

(x.shape)

> torch.size([4

,3])

x = torch.randn(3,

4,5)

print

(x.shape)

> torch.size([3

,4,5

])# 使用permute和transpose進行維度交換

x = x.permute(1,

0,2)

print

(x.shape)

>torch.size([4

,3,5

])# transpose交換tensor中的兩個維度

x = x.transpose(0,

2)print

(x.shape)

> torch.size([5

,3,4

])

x = torch.randn(3,

4,5)

x = x.view(-1

,5)# -1 表示任意的大小,5表示第二維變成5

print

(x.shape)

# 重新reshape成(3, 2, 10)的大小

x = x.view(3,

2,10)

print

(x.shape)

x = torch.randn(3,

4)y = torch.randn(3,

4)# 兩個tensor求和

z = x + y

# z = torch.add(x,y)

pytorch中大多數的操作都支援inplace操作,也就是可以直接對tensor進行操作而不需要另外開闢記憶體空間,方式非常簡單,一般都是在操作的符號後面加_,比如

x = torch.ones(3,

3)print

(x.shape)

# unsqueeze 進行inplace

x.unsqueeze_(0)

print

(x.shape)

# transpose 進行inplace

x.transpose_(1,

0)print

(x.shape)

x = torch.ones(3,

3)y = torch.ones(3,

3)print

(x)x.add_(y)

print

(x)

Pytorch學習 1 pytorch簡介

pytorch簡介 1 pytorch簡介 1.1 pytorch的大概 pytorch不是簡單的封裝 lua torch 提供python介面,而是對當下tensor之上的模組進行重構,並增加了最先進的自動求導系統,成為當下最流行的動態圖框架。pytorch是乙個基於torch的python開源機...

pytorch基礎學習 1

剛剛接觸了tensorflow,現在對pytorch也有很大的興趣,說到底,這些機器學習庫都是工具,技多不壓身,2016年到現在也不到三年的庫,發展這麼快必然有它的道理,廢話不多,開始學習吧。包torch包含了多維張量的資料結構以及基於其上的多種數學操作。另外,它也提供了多種工具,其中一些可以有效的...

pytorch基礎學習1

1.從numpy匯入 import torch import numpy as np a np.array 2,2.3 b torch.from numpy a print a print b a np.ones 2,3 b torch.from numpy a print a print b 結果...