Python深度学习之Pytorch初步使用


Posted in Python onMay 20, 2021

一、Tensor

Tensor(张量是一个统称,其中包括很多类型):

0阶张量:标量、常数、0-D Tensor;1阶张量:向量、1-D Tensor;2阶张量:矩阵、2-D Tensor;……

二、Pytorch如何创建张量

2.1 创建张量

import torch
	
	t = torch.Tensor([1, 2, 3])
	print(t)

Python深度学习之Pytorch初步使用

2.2 tensor与ndarray的关系

两者之间可以相互转化

import torch
import numpy as np

t1 = np.array(torch.Tensor([[1, 2, 3],
        [1, 2, 3]]))
t2 = torch.Tensor(np.array([[1, 2, 3],
        [1, 2, 3]]))

运行结果:

Python深度学习之Pytorch初步使用

2.3 常用api

torch.empty(x,y)

创建x行y列为空的tensor。

Python深度学习之Pytorch初步使用

torch.ones([x, y])

创建x行y列全为1的tensor。

Python深度学习之Pytorch初步使用

torch.zeros([x,y])

创建x行y列全为0的temsor。

Python深度学习之Pytorch初步使用

zeros与empty的区别

后者的数据类型是不固定的。

torch.rand(x, y)

创建3行4列的随机数,随机数是0-1。

Python深度学习之Pytorch初步使用

torch.randint(low, high, size)

创建一个size的tensor,随机数为low到high之间。

Python深度学习之Pytorch初步使用

torch.randn([x, y])

创建一个x行y列的tensor,随机数的分布式均值为0,方差1。

2.4 常用方法

item()

获取tensor中的元素,注意只有一个元素的时候才可以用。

Python深度学习之Pytorch初步使用

numpy()

转化成ndarray类型。

Python深度学习之Pytorch初步使用

size()

获取tensor的形状

Python深度学习之Pytorch初步使用

view()

浅拷贝,tensor的形状改变

可以传参,表示获取第几个。若参数为-1,表示不确定,与另一个参数的乘积等于原始形状的乘积。 例如:原始形状为8,则view(-1,2)view(4, 2); 参数只有-1,表示一维。

Python深度学习之Pytorch初步使用

dim()

获取维度。

Python深度学习之Pytorch初步使用

max()

获取最大值。

Python深度学习之Pytorch初步使用

t()

转置。

Python深度学习之Pytorch初步使用

transpose(x,y)

x,y是size里面返回的形状相换。

Python深度学习之Pytorch初步使用

permute()

传入size()返回的形状的顺序。

Python深度学习之Pytorch初步使用

transpose与permute的区别

前者传入列即可相互交换;后者传入列会根据传入的顺序来进行转化,且需要传入所有列数的索引。

取值[第一阶, 第二阶,……]

一个逗号隔开代表一个阶乘冒号代表全取

Python深度学习之Pytorch初步使用

赋值[第一阶, 第二阶,……]

直接赋值即可

Python深度学习之Pytorch初步使用

三、数据类型

Python深度学习之Pytorch初步使用

3.1 获取数据类型

tensor.dtype

获取数据类型

Python深度学习之Pytorch初步使用

设置数据类型

注意使用Tensor()不能指定数据类型。

Python深度学习之Pytorch初步使用

type()

修改数据类型。

Python深度学习之Pytorch初步使用

四、tensor的其他操作

4.1 相加

torch.add(x, y)

将x和y相加

Python深度学习之Pytorch初步使用

直接相加

Python深度学习之Pytorch初步使用

tensor.add()

使用add_() 可相加后直接保存在tensor中

Python深度学习之Pytorch初步使用

4.2 tensor与数字的操作

tensor + 数值

Python深度学习之Pytorch初步使用

五、CUDA中的tensor

CUDA (Compute Unified Device Architecture),是NVIDIA推出的运算平台。CUDATM是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。
torch.cuda这个模块增加了对CUDA tensor的支持,能够在cpu和gpu上使用相同的方法操作tensor通过.to方法能够把一个tensor转移到另外一个设备(比如从CPU转到GPU)

可以使用torch.cuda.is_available()判断电脑是否支持GPU

到此这篇关于Python深度学习之Pytorch初步使用的文章就介绍到这了,更多相关Pytorch初步使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python小技巧之批量抓取美女图片
Jun 06 Python
Python实现将DOC文档转换为PDF的方法
Jul 25 Python
python编程羊车门问题代码示例
Oct 25 Python
对python 矩阵转置transpose的实例讲解
Apr 17 Python
python语言基本语句用法总结
Jun 11 Python
selenium跳过webdriver检测并模拟登录淘宝
Jun 12 Python
PyCharm 在Windows的有用快捷键详解
Apr 07 Python
Python ini文件常用操作方法解析
Apr 26 Python
python求numpy中array按列非零元素的平均值案例
Jun 08 Python
零基础学Python之前需要学c语言吗
Jul 21 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
Aug 03 Python
Linux系统下升级pip的完整步骤
Jan 31 Python
我对PyTorch dataloader里的shuffle=True的理解
Python快速优雅的批量修改Word文档样式
Django migrate报错的解决方案
Django使用channels + websocket打造在线聊天室
教你怎么用python爬取爱奇艺热门电影
Pytorch使用shuffle打乱数据的操作
May 20 #Python
教你利用Selenium+python自动化来解决pip使用异常
You might like
phpBB BBcode处理的漏洞
2006/10/09 PHP
php $_ENV为空的原因分析
2009/06/01 PHP
IP攻击升级,程序改进以对付新的攻击
2010/11/23 PHP
PHP基础之运算符的使用方法
2013/04/28 PHP
基于PHP输出缓存(output_buffering)的深入理解
2013/06/13 PHP
php实现给图片加灰色半透明效果的方法
2014/10/20 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
2010/09/14 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
2013/12/13 Javascript
浅谈Javascript线程及定时机制
2015/07/02 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
2015/08/04 Javascript
基于Jquery插件Uploadify实现实时显示进度条上传图片
2020/03/26 Javascript
React组件的三种写法总结
2017/01/12 Javascript
Bootstarp 基础教程之表单部分实例代码
2017/02/03 Javascript
nodejs基于express实现文件上传的方法
2018/03/19 NodeJs
vue中导出Excel表格的实现代码
2018/10/18 Javascript
Vue press 支持图片放大功能的实例代码
2018/11/09 Javascript
python 域名分析工具实现代码
2009/07/15 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
2017/07/17 Python
使用Python更换外网IP的方法
2018/07/09 Python
python字符串Intern机制详解
2019/07/01 Python
python 实现GUI(图形用户界面)编程详解
2019/07/17 Python
python 监测内存和cpu的使用率实例
2019/11/28 Python
python+OpenCV实现图像拼接
2020/03/05 Python
Python中的特殊方法以及应用详解
2020/09/20 Python
python smtplib发送多个email联系人的实现
2020/10/09 Python
韩国女装NO.1网店:STYLENANDA
2016/09/16 全球购物
速比涛英国官网:Speedo英国
2019/07/15 全球购物
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
创先争优承诺书范文
2014/03/31 职场文书
2014年秋季开学典礼致辞
2014/08/02 职场文书
机关党总支领导班子整改方案
2014/09/20 职场文书
商超业务员岗位职责
2015/02/13 职场文书
2015年远程教育工作总结
2015/05/20 职场文书
创业不要错过,这4种餐饮新模式
2019/07/18 职场文书