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 install
测试是否安装成功,在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

在这里插入图片描述
上面是矩阵,那试一试更高维。

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

在这里插入图片描述
可以看出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)

在这里插入图片描述

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

在这里插入图片描述

另外,还有很多种张量的操作,如转置(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类型

在这里插入图片描述
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

在这里插入图片描述

Tensor与numpy的Array相互转换

1.tensor转换为array

b = a.numpy()#a为tensor

在这里插入图片描述
2.array转换为tensor

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

在这里插入图片描述

CUDA的使用

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

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

如下图所示,计算两个tensor的和。使用cuda函数之后会调用GPU来运算。
cuda

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值