pytorch文檔筆記1-什麼是pytorch

"""python

1.什麼是pytorch:學習

1)替代numpy而且能夠靈活使用GPUspa

2)提供靈活和速度的深度學習平臺對象

"""字符串

 

import torch # 導入torch包深度學習

 

#建立it

x = torch.empty(5,3)# 空的tensorimport

x = torch.rand(5,3)# 隨機的tensorfloat

x = torch.zeros(5,3,dtype=torch.long)#全0而且指定類型numpy

x = torch.tensor([5,3])#直接從數據構造,注意tensor小寫;

x = x.new_ones(5,3,dtype=torch.double)#利用原有張量的屬性建立新的張量,除非指定了類型;

x = torch.rand_like(x,dtype=torch.float)#尺寸同樣(利用了x的尺寸),覆蓋類型

#print(x,x.size())

 

#基本操做:任何使張量就地變化的操做都用固定_。例如:x.copy_(y),x.t_(),將改變x。

y = torch.rand(5,3)

z = x + y  # 直接加法

torch.add(x,y,out=z)#間接加法,輸出給z,參數指定

z.add(x)# 直接將x加到z身上再返回z;

print(z,z[:,1])#相似python的切片操做

x = torch.randn(4,4)

y = x.view(16)#4*4變16

z = x.view(-1,8)#4*4變爲2行8列,-1表明自動計算行列

x = torch.randn(1)

print(x,x.item())#tensor([0.6868]) 0.6867704391479492  單個元素使用item獲取具體值

 

#numpy轉換

a = torch.ones(5)

b = a.numpy()

print(b)

a.add(1)#這裏只是臨時的,不改變a,b自己

print(a,b)

a.add_(1)#這裏_表示a須要被改變,而且a改變後b跟着改變

print(a,b)

 

import numpy as np

a = np.ones(5)

b = torch.from_numpy(a)

print(a,b)

 

#gpu切換

if torch.cuda.is_available():

    dev = torch.device("cuda")#獲得一個cuda對象

    y = torch.ones_like(x,device=dev)#在gpu上建立一個tensor

    x = x.to(dev)#x跑到gpu上,注意這個to和下面的to是一個意思,使用tensor指定也能夠使用字符串指定

    z = x +y

    print(z,z.to("cpu",torch.double))#tensor([1.9681], device='cuda:0') tensor([1.9681], dtype=torch.float64) 這裏z跑到cpu上。

相關文章
相關標籤/搜索