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微信跳一跳系列之色块轮廓定位棋盘
Feb 26 Python
Python实现自定义顺序、排列写入数据到Excel的方法
Apr 23 Python
详解Django解决ajax跨域访问问题
Aug 24 Python
详解如何为eclipse安装合适版本的python插件pydev
Nov 04 Python
Python实现繁?转为简体的方法示例
Dec 18 Python
在python中使用requests 模拟浏览器发送请求数据的方法
Dec 26 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
Sep 29 Python
python读取word 中指定位置的表格及表格数据
Oct 23 Python
Pytorch提取模型特征向量保存至csv的例子
Jan 03 Python
PyTorch实现AlexNet示例
Jan 14 Python
python实现ftp文件传输系统(案例分析)
Mar 20 Python
Python3+selenium配置常见报错解决方案
Aug 28 Python
我对PyTorch dataloader里的shuffle=True的理解
Python快速优雅的批量修改Word文档样式
Django migrate报错的解决方案
Django使用channels + websocket打造在线聊天室
教你怎么用python爬取爱奇艺热门电影
Pytorch使用shuffle打乱数据的操作
May 20 #Python
教你利用Selenium+python自动化来解决pip使用异常
You might like
php实现文件下载(支持中文文名)
2013/12/04 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
PHP实现搜索时记住状态的方法示例
2018/05/11 PHP
PHPUnit + Laravel单元测试常用技能
2019/11/06 PHP
replace()方法查找字符使用示例
2013/10/28 Javascript
js之ActiveX控件使用说明 new ActiveXObject()
2014/03/03 Javascript
jQuery简单实现遍历数组的方法
2015/04/14 Javascript
解决jquery中动态新增的元素节点无法触发事件问题的两种方法
2015/10/30 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
2017/05/18 Javascript
利用Three.js如何实现阴影效果实例代码
2017/09/26 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
用Python的Django框架编写从Google Adsense中获得报表的应用
2015/04/17 Python
Python操作RabbitMQ服务器实现消息队列的路由功能
2016/06/29 Python
详解Python读取配置文件模块ConfigParser
2017/05/11 Python
python异步存储数据详解
2019/03/19 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
pyqt5 删除layout中的所有widget方法
2019/06/25 Python
对django后台admin下拉框进行过滤的实例
2019/07/26 Python
Django ImageFiled上传照片并显示的方法
2019/07/28 Python
django重新生成数据库中的某张表方法
2019/08/28 Python
Python + Flask 实现简单的验证码系统
2019/10/01 Python
春节到了 教你使用python来抢票回家
2020/01/06 Python
tensorboard实现同时显示训练曲线和测试曲线
2020/01/21 Python
spyder 在控制台(console)执行python文件,debug python程序方式
2020/04/20 Python
Python迭代器协议及for循环工作机制详解
2020/07/14 Python
celery在python爬虫中定时操作实例讲解
2020/11/27 Python
python实现图片转字符画的完整代码
2021/02/21 Python
纯css3显示隐藏一个div特效的具体实现
2014/02/10 HTML / CSS
HTMl5的存储方式sessionStorage和localStorage详解
2014/03/18 HTML / CSS
Java语言程序设计测试题判断题部分
2013/01/06 面试题
银行会计主管岗位职责
2014/10/01 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
物流仓管员岗位职责
2015/04/01 职场文书
情况说明书格式及范文
2019/06/24 职场文书
Go语言带缓冲的通道实现
2021/04/26 Golang