宁慈建设网站,灵台县门户网站,wordpress搬家失败,泰州seo外包超简单#xff01;pytorch入门教程#xff1a;Tensor
一、pytorch安装
安装pytorch之前#xff0c;需要安装好python#xff08;废话#xff09;#xff0c;还没安装过python的宝宝请先移步到廖雪峰的python教程#xff0c;待安装熟悉完之后#xff0c;再过来这边。 …超简单pytorch入门教程Tensor
一、pytorch安装
安装pytorch之前需要安装好python废话还没安装过python的宝宝请先移步到廖雪峰的python教程待安装熟悉完之后再过来这边。
我们接着讲。
打开pytorch官网http://pytorch.org找到下图所示位置 如图所示选择好系统包管理工具python的版本是否支持CUDAZen君的配置是OSX包管理工具是pip版本2.7不支持CUDA哭
选择好相应的配置然后就可以复制下面“Run this command”的代码直接打开命令台粘贴运行即完成pytorch的安装。
二、pytorch的基石–Tensor张量
要介绍Tensor这个数据类型我觉得有必要扯一下数学。
我们都知道
标量Scalar是只有大小没有方向的量如123等
向量Vector是有大小和方向的量其实就是一串数字如(1,2)
矩阵Matrix是好几个向量拍成一排合并而成的一堆数字如[1,2;3,4] 如图我们可以看出矩阵是二维的向量是一维的标量是零维的。
那么张量Tensor是什么呢呵呵呵呵大家估计也能猜出来是按照三维排列的一堆数字
是的。但是也不完全正确。
其实标量向量矩阵它们三个也是张量标量是零维的张量向量是一维的张量矩阵是二维的张量。 张量就是按照任意维排列的一堆数字的推广。如图所示矩阵不过是三维张量下的一个二维切面。要找到三维张量下的一个标量需要三个维度的坐标来定位。
除此之外张量还可以是四维的、五维的、。。。等等
数学扯完了我们撸串代码操练操练 (*ˉ︶ˉ*) import torch #引用torch包 x torch.Tensor(2,3) #构造一个2x3的矩阵没初始化但仍然会有值 x 8.0118e28 4.5768e-41 8.0118e28 4.5768e-41 2.9747e-37 1.4013e-45 [torch.FloatTensor of size 2x3] #可以看出数据类型是浮点数的2x3矩阵 看矩阵看不出张量的道道我们来点刺激的 ytorch.Tensor(4,2,3) #构造一个4x2x3的张量没初始化 y (0 ,.,.) 1.00000e-29 * 0.0000 2.5244 0.0000 2.5244 0.0000 0.0000 (1 ,.,.) 1.00000e-29 * 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 (2 ,.,.) 1.00000e-29 * 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 (3 ,.,.) 1.00000e-29 * 0.0000 0.0000 0.0000 2.5244 0.0000 2.5244 [torch.FloatTensor of size 4x2x3] 我们从上面的返回值可以看出4x2x3的张量y由4个2x3的矩阵构成这符合了我们数学上的定义。
Tensor的加法(四种)
我们先初始化两个张量 rand()用随机数初始化5x3的矩阵
第一种 ab 第二种 torch.add(a,b) 第三种 result torch.Tensor(5,3) torch.add(a,b,outresult) #把运算结果存储在result上 第四种 b.add_(a) #把运算结果覆盖掉b Tensor的部分截取 利用b[:,1]来截取第2列的所有元素计算机是从0开始数所以1是第2列
Tensor的其他操作
除了加法以外还有上百种张量的操作比如说转置transposing切片slicing等送个链接给少侠少侠自己在家慢慢操练了。
Tensor与numpy的Array的相互转换
torch的tensor可以与numpy的array进行转换
1.tensor⇒array b a.numpy() #a为tensor 如图所示b和a是共用一块内存所以当a发生变化时b也会发生变化。
2.array⇒tensor b torch.from_numpy(a) #a为numpy的array 如图所示a和b一样是共用一块内存。
CUDA的神助攻
假如少侠你有一块nvidia的显卡并支持cuda如GTX 1080那么恭喜你你可以使用显卡gpu进行tensor的运算。假如你像Zen君一样没有考虑买一个吧。。。购买指南为你的深度学习任务挑选最合适GPU:从性能到价格的全方位指南 torch.cuda.is_available() #看看是否支持cuda 假如返回的是True那么下面的代码将带你飞。 x x.cuda() y y.cuda() xy #这里的x和y都是tensor使用cuda函数以后x和y的所有运算均会调用gpu来运算。