pytorch学习(一)pytorch介绍,以及tensor类型,张量类型转换,cpu张量和GPU张量、pytorch常用函数

pytorch不是一个完备的语言库,它是用于数据计算的GPU加速库,它没有内置对string类型的支持。
它如何表达string?使用编码的方式
(1)one-hot([0,1,0,0……])
(2)Embedding(word2vec、glove)

Tensor有不同的数据类型,每种类型分别有对应CPU和GPU版本(HalfTensor除外)。
默认的Tensor是FloatTensor,可通过torch.set_default_tensor_type修改默认tensor类型(如果默认类型为GPU tensor,则所有操作都将在GPU上进行)。
HalfTensor是专为GPU版本设计的,同样的元素个数,显存占用只有HalfTensor的一半,所以可以极大缓解GPU显存不足的问题,但是由于HalfTensor所能表示的数值大小和精度有限,所以可能出现溢出等问题。
pytorch学习(一)pytorch介绍,以及tensor类型,张量类型转换,cpu张量和GPU张量、pytorch常用函数_第1张图片
pytorch学习(一)pytorch介绍,以及tensor类型,张量类型转换,cpu张量和GPU张量、pytorch常用函数_第2张图片

在cpu上tensor的数据类型:torch.FloatTensor
在GPU上tensor的数据类型:torch.cuda.FloatTensor
CPU张量和GPU张量之间的转换
CPU -> GPU: data.cuda()
GPU -> CPU: data.cpu()

pytorch0.3版本以前,没有dimension为0的tensor,如对于loss=0.3,会返回[0.3]
但pytorch0.4以后,会返回0.3。
即在pytorch0.4以后,增加了长度为0的tensor

更改默认的tensor类型

import torch
t1 = torch.Tensor(2,3) #默认是FloatTensor类型
print(t1,t1.type(),t1.dtype)

#设置默认的tensor类型
torch.set_default_tensor_type(torch.DoubleTensor)

t2 = torch.Tensor(2,3)
t3 = torch.tensor([2.1,3,4])    
print(t2,t2.type(),t2.dtype)  
print(t3,t3.type(),t3.dtype)

pytorch学习(一)pytorch介绍,以及tensor类型,张量类型转换,cpu张量和GPU张量、pytorch常用函数_第3张图片
类型转换

pytorch学习(一)pytorch介绍,以及tensor类型,张量类型转换,cpu张量和GPU张量、pytorch常用函数_第4张图片
pytorch常用函数
pytorch常用函数

你可能感兴趣的:(pytorch)