本人有一些python基础,听说过pytorch但没用过。下面记录一下pytorch学习,方便后面自己查阅。(以下代码都出自本人计算机)
PyTorch中文文档: https://pytorch-cn.readthedocs.io/zh/latest/
PyTorch入门教程-简书:https://www.jianshu.com/u/5e2b32ff790c
pytorch官网:https://pytorch.org/ 。如果直接输入官网打不开可以考虑百度pytorch,从百度进入官网。需要先安装python,然后如下图所示,选择之后用command安装。
测试是否安装成功,在python里面import torch看是否报错,如果没有报错则安装成功。
torch.Tensor是一种包含单一数据类型元素的多维矩阵
标量(Scalar)就是单纯的数字,只有大小没有方向,如1,2,3等。是0维。
向量(Vector)是一串数字,既有大小又有方向,如(1,2,3),(3,5,7)等。是1维。
矩阵(Matrix)是多个向量排在一起合成的一堆数字,如[1,2,3;4,5,6]。是2维。
张量(Tensor)是多个矩阵三维排列的。另外张量还有4维、5维的。
如下图,生成一个张量。
import torch
x = torch.Tensor(2,3)#构造一个2*3矩阵
x
y = torch.Tensor(2,2,3)#构造2*2*3张量
y
1.从Python的list或序列来构建
a = torch.FloatTensor([[1,2,3],[4,5,6]])
a
a = torch.IntTensor(2,4).zero_()
a
3.用python的索引和切片来获取和修改一个张量tensor中的内容
a = torch.FloatTensor([[1,2,3],[4,5,6]])
print(a[1][2])
a[1][2] = 9
print(a)
a[:,1]#要第二列
另外,还有很多种张量的操作,如转置(transposing)、切片(slicing)等等,可以在python官网查看:https://pytorch.org/docs/stable/torch.html
。
a = torch.Tensor(3,2,3)
torch.is_tensor(a)
torch.Tensor是默认的tensor类型(torch.FlaotTensor)的简称。
#先初始化两个张量
a = torch.rand(3,4)
b = torch.rand(3,4)
a+b#第一种
torch.add(a,b)#第二种
result = torch.Tensor(3,4)#第三种
torch.add(a,b,out=result)#把结果存到result上
b.add_(a)#第四种,把运算结构覆盖掉b
1.tensor转换为array
b = a.numpy()#a为tensor
b = torch.from_numpy(a)#a为numpy的array
如果有一块nvidia的显卡(如 GTX 1080)并支持cuda,那么可以使用显卡GPU进行tensor运算。
torch.cuda.is_available()#看看是否支持cuda
#如果返回true,那么就可以用cuda了
#例如 x = x.cuda()