您的位置:首页 > 编程语言 > Python开发

pytorch60分钟入门1

2019-06-11 18:52 2276 查看

 

"""

在开头加上from __future__ import print_function这句之后,即使在python2.X,

使用print就得像python3.X那样加括号使用。python2.X中print不需要括号,而在python3.X中则需要;

低版本支持高版本,高版本不支持;

"""

from __future__ import print_function

import torch

 

x = torch.empty(5,3)##5行3列矩阵,未初始化;实际上会进行随机初始化;

"""

tensor([[1.3220e-08, 4.5712e-41, 1.3220e-08],

[4.5712e-41, 8.8674e-04, 6.2717e+22],

[4.7428e+30, 1.8179e+31, 7.0948e+22],

[3.1855e-12, 1.7565e+25, 2.9590e+21],

[6.8899e+22, 2.6301e+20, 1.2118e+25]])

"""

print(x)

x = torch.empty(5,3,dtype=torch.float16)#带类型创建,注意这里是小写torch;

print(x.type())#torch.HalfTensor

 

x = torch.rand(5,3)#这里意思是均匀分布

print(x)

 

x = torch.zeros(5,3)

x = torch.ones(3,2)#这里我们指定初始化位0或者1;

y = torch.tensor([1,2])#这里直接从张量创建,注意这里的语法;

 

x = x.new_ones(3,2)

print(x)##根据已有张量进行创建,使用已有张量属性;包括形状,初始化值等;

x = x.new_ones(3,2,dtype=torch.float64)#这里指定类型;另外一种语法形式如下:

x = torch.rand_like(x,dtype=torch.float32)#同上,只是语法稍微有所不同;并进行了类型覆盖

print(x)

print(x.size())#torch.Size([3, 2])

x = x+x

x = torch.add(x,x)#二者是同样意思;

torch.add(x,x,out=x)#将运算结果给x,省略了赋值操作;

x.add(x)#在x基础上加上x;

 

x=torch.randn(4,4)#标准正太分布

x = x.view(16)#转换为一行

x = x.view(-1,8)#转换为2行8列,这里-1代表自动计算行;

 

print(x[0][0].item())#获取具体数值内容,再转换为数字;

 

x = x.numpy()

print(type(x))#<class 'numpy.ndarray'>转换类型;

x = torch.from_numpy(x)

 

#设备迁移

if torch.cuda.is_available():

device = torch.device('cuda')#创建一个cuda设备对象;

gpu_tensor = torch.ones_like(x,device=device)#在GPU上创建一个张量

x = x.to(device)#和上面完全一样,只是方式不同;

x = x.to('cpu',torch.double)#将张量转移到cpu上,并设置类型。这里使用的是字符串形式迁移,本质是一样的;

 

(adsbygoogle = window.adsbygoogle || []).push({});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  CUDA Python NumPy PyTorch