PyTorch Learning (一)

PyTorch安装与Tensor介绍

本人有一些python基础,听说过pytorch但没用过。下面记录一下pytorch学习,方便后面自己查阅。(以下代码都出自本人计算机)

一些相关链接

PyTorch中文文档: https://pytorch-cn.readthedocs.io/zh/latest/

PyTorch入门教程-简书:https://www.jianshu.com/u/5e2b32ff790c

回到正题…

一 安装PyTorch

pytorch官网:https://pytorch.org/ 。如果直接输入官网打不开可以考虑百度pytorch,从百度进入官网。需要先安装python,然后如下图所示,选择之后用command安装。
PyTorch Learning (一)_第1张图片
测试是否安装成功,在python里面import torch看是否报错,如果没有报错则安装成功。

二 Tensor张量

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

PyTorch Learning (一)_第2张图片
上面是矩阵,那试一试更高维。

y = torch.Tensor(2,2,3)#构造2*2*3张量
y

PyTorch Learning (一)_第3张图片
可以看出423的张量是有两个2*3的矩阵构成。

tensor构建、索引、修改

1.从Python的list或序列来构建

a = torch.FloatTensor([[1,2,3],[4,5,6]])
a

在这里插入图片描述
2.一个空张量tensor可以通过规定其大小来构建

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)

PyTorch Learning (一)_第4张图片

  1. Tensor的截取
    这里跟matlab有点像
a[:,1]#要第二列

PyTorch Learning (一)_第5张图片

另外,还有很多种张量的操作,如转置(transposing)、切片(slicing)等等,可以在python官网查看:https://pytorch.org/docs/stable/torch.html

判断是不是一个张量
a = torch.Tensor(3,2,3)
torch.is_tensor(a)

在这里插入图片描述

Torch定义了7种CPU tensor类型和8种GPU tensor类型

PyTorch Learning (一)_第6张图片
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

PyTorch Learning (一)_第7张图片

Tensor与numpy的Array相互转换

1.tensor转换为array

b = a.numpy()#a为tensor

PyTorch Learning (一)_第8张图片
2.array转换为tensor

b = torch.from_numpy(a)#a为numpy的array

PyTorch Learning (一)_第9张图片

CUDA的使用

如果有一块nvidia的显卡(如 GTX 1080)并支持cuda,那么可以使用显卡GPU进行tensor运算。

torch.cuda.is_available()#看看是否支持cuda
#如果返回true,那么就可以用cuda了
#例如 x = x.cuda()

如下图所示,计算两个tensor的和。使用cuda函数之后会调用GPU来运算。
PyTorch Learning (一)_第10张图片

你可能感兴趣的:(PyTorch)