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中多线程及程序锁浅析
Jan 21 Python
Python 内置函数memoryview(obj)的具体用法
Nov 23 Python
对python中for、if、while的区别与比较方法
Jun 25 Python
Python线程下使用锁的技巧分享
Sep 13 Python
python中join()方法介绍
Oct 11 Python
解决Mac下首次安装pycharm无project interpreter的问题
Oct 29 Python
如何使用Python标准库进行性能测试
Jun 25 Python
django数据关系一对多、多对多模型、自关联的建立
Jul 24 Python
python正则-re的用法详解
Jul 28 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
Aug 13 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
Jan 20 Python
如何使用Django Admin管理后台导入CSV
Nov 06 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中的session永不过期的解决思路及实现方法分享
2011/04/20 PHP
php模拟ping命令(php exec函数的使用方法)
2013/10/25 PHP
Yii实现Command任务处理的方法详解
2016/07/14 PHP
jquery 跨域访问问题解决方法(笔记)
2011/06/08 Javascript
JS 精确统计网站访问量的实例代码
2013/07/05 Javascript
jquery插件jTimer(jquery定时器)使用方法
2013/12/23 Javascript
JS显示表格内指定行html代码的方法
2015/03/31 Javascript
JavaScript中的toDateString()方法使用详解
2015/06/12 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
2016/08/01 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
详解js的六大数据类型
2016/12/27 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
2017/03/08 Javascript
vue和webpack安装命令详解
2018/06/15 Javascript
Node.js搭建WEB服务器的示例代码
2018/08/15 Javascript
微信小程序实现购物车功能
2020/11/18 Javascript
用实例详解Python中的Django框架中prefetch_related()函数对数据库查询的优化
2015/04/01 Python
简单介绍Python中的round()方法
2015/05/15 Python
Python中getattr函数和hasattr函数作用详解
2016/06/14 Python
详解python进行mp3格式判断
2016/12/23 Python
解决python3爬虫无法显示中文的问题
2018/04/12 Python
python字符串string的内置方法实例详解
2018/05/14 Python
Python文件读写保存操作的示例代码
2018/09/14 Python
对Python中plt的画图函数详解
2018/11/07 Python
对python多线程与global变量详解
2018/11/09 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
python中Lambda表达式详解
2019/11/20 Python
使用Django xadmin 实现修改时间选择器为不可输入状态
2020/03/30 Python
PyQt5 控件字体样式等设置的实现
2020/05/13 Python
Python 中如何使用 virtualenv 管理虚拟环境
2021/01/21 Python
医学生求职自荐信
2013/10/25 职场文书
自荐信范文
2013/12/10 职场文书
单位人事专员介绍信
2014/01/11 职场文书
办公室主任主任岗位责任制
2014/02/11 职场文书
秋季校运会广播稿100字
2014/09/18 职场文书
劳资员岗位职责
2015/02/13 职场文书
2015年检察院个人工作总结
2015/05/20 职场文书