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上。

相关文章
相关标签/搜索