详解pytorch创建tensor函数


Posted in Python onMarch 22, 2022

1、通过复制数据构造张量

1.1 torch.tensor()

torch.tensor([[0.1, 1.2], [2.2, 3.1], [4.9, 5.2]])
Out[111]: 
tensor([[0.1000, 1.2000],
        [2.2000, 3.1000],
        [4.9000, 5.2000]])
torch.tensor([0, 1]) 
Out[112]: tensor([0, 1])
torch.tensor([[0.11111, 0.222222, 0.3333333]],
             dtype=torch.float64,              device=torch.device('cpu'))
Out[113]: tensor([[0.1111, 0.2222, 0.3333]], dtype=torch.float64)
torch.tensor(3.14159)
Out[114]: tensor(3.1416)
torch.tensor([]) 
Out[115]: tensor([])

torch.tensor([[0.11111, 0.222222, 0.3333333]],
             dtype=torch.float64,              device=torch.device('cpu'), requires_grad=True, pin_memory=False)
Out[117]: tensor([[0.1111, 0.2222, 0.3333]], dtype=torch.float64, requires_grad=True)
  • dtype(torch.dtype,可选)–返回张量的所需数据类型。默认值:如果没有,则根据数据推断数据类型。
  • device(torch.device,可选)–构造张量的装置。如果没有,并且数据是张量,那么就使用数据设备。如果没有且数据不是张量,则结果张量在CPU上构造。
  • require_grad(bool,可选)– 是否需要保留梯度信息。默认值:False。
  • pin_memory(bool,可选)–如果设置了,返回的张量将分配到pind内存中。仅适用于CPU张量。默认值:False。

1.2 将numpy的ndarray转为tensor

>>> a = numpy.array([1, 2, 3])
>>> t = torch.as_tensor(a)
>>> t
tensor([1, 2, 3])
>>> t[0] = -1
>>> a
array([-1,  2,  3])
>>> a = numpy.array([1, 2, 3])
>>> t = torch.as_tensor(a, device=torch.device('cuda'))
>>> t[0] = -1
>>> a
array([1, 2, 3])

t = torch.as_tensor([2, 2, 2], device=torch.device('cuda'))
>>> t
tensor([2, 2, 2], device='cuda:0')

a = numpy.array([1, 2, 3])
t = torch.from_numpy(a)
t
Out[38]: tensor([1, 2, 3])
t[0] = -1
a
Out[40]: array([-1,  2,  3])

2、生成全0或者全1的tensor

torch.zeros(2, 3)
Out[41]: 
tensor([[0., 0., 0.],
        [0., 0., 0.]])
torch.zeros(5)
Out[42]: tensor([0., 0., 0., 0., 0.])

torch.ones(2, 3)
Out[43]: 
tensor([[1., 1., 1.],
        [1., 1., 1.]])
torch.ones(5)
Out[44]: tensor([1., 1., 1., 1., 1.])

参数列表:

  • out:输出的对象
  • dtype: 返回的张量的所需数据类型。默认值:如果没有,则使用全局默认值(请参阅torch.set_Default_tensor_type())。
  • layout
  • device: 构造张量的装置。如果没有,并且数据是张量,那么就使用数据设备。如果没有且数据不是张量,则结果张量在CPU上构造。
  • requires_grad: 是否需要保留梯度信息。默认值:False。

3、生成序列

3.1、 生成一个指定步长的等差序列

torch.arange(5)
Out[45]: tensor([0, 1, 2, 3, 4])
torch.arange(1, 4)
Out[46]: tensor([1, 2, 3])
torch.arange(1, 2.5, 0.5)
Out[47]: tensor([1.0000, 1.5000, 2.0000])
  • start: 点集的开始值。默认值:0。
  • end: 点集的结束值
  • step: 每对相邻点之间的间隙。默认值:1,可以是小数。

3.2 生成一个指定步数的等差数列

torch.linspace(3, 10, steps=5)
Out[49]: tensor([ 3.0000,  4.7500,  6.5000,  8.2500, 10.0000])
torch.linspace(-10, 10, steps=5)
Out[50]: tensor([-10.,  -5.,   0.,   5.,  10.])
torch.linspace(start=-10, end=10, steps=1)
Out[51]: tensor([-10.])

4、生成指定大小的单位矩阵

torch.eye(3)
Out[58]: 
tensor([[1., 0., 0.],
        [0., 1., 0.],
        [0., 0., 1.]])

5、生成一个指定大小张量

torch.empty((2,3), dtype=torch.int64)
Out[59]: 
tensor([[0, 0, 0],
        [0, 0, 2]])

6、 创建一个指定大小的张量。张量的数据是填充的指定值

torch.full((2, 3), 3.141592)
Out[67]: 
tensor([[3.1416, 3.1416, 3.1416],
        [3.1416, 3.1416, 3.1416]])

到此这篇关于pytorch创建tensor函数详情的文章就介绍到这了,更多相关pytorch创建tensor函数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
使用Python进行二进制文件读写的简单方法(推荐)
Sep 12 Python
浅谈python内置变量-reversed(seq)
Jun 21 Python
Python协程的用法和例子详解
Sep 09 Python
python中的计时器timeit的使用方法
Oct 20 Python
django 2.0更新的10条注意事项总结
Jan 05 Python
python交换两个变量的值方法
Jan 12 Python
python制作图片缩略图
Apr 30 Python
pyqt5 QProgressBar清空进度条的实例
Jun 21 Python
python实现文件的分割与合并
Aug 29 Python
Python优秀开源项目Rich源码解析的流程分析
Jul 06 Python
解决pytorch下出现multi-target not supported at的一种可能原因
Feb 06 Python
Python re.sub 反向引用的实现
Jul 07 Python
详解Python+OpenCV绘制灰度直方图
PYTHON使用Matplotlib去实现各种条形图的绘制
Python+OpenCV实现在图像上绘制矩形
Matplotlib绘制条形图的方法你知道吗
Python的代理类实现,控制访问和修改属性的权限你都了解吗
Mar 21 #Python
python的netCDF4批量处理NC格式文件的操作方法
Python&Matlab实现灰狼优化算法的示例代码
You might like
PHP+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
phpMyadmin 用户权限中英对照
2010/04/02 PHP
linux命令之调试工具strace的深入分析
2013/06/03 PHP
Symfony核心类概述
2016/03/17 PHP
PHP PDOStatement::setAttribute讲解
2019/02/01 PHP
Dreamweaver jQuery智能提示插件,支持版本提示,支持1.6api
2011/07/31 Javascript
分享一个我自己写的ToolTip提示插件(附源码)
2013/01/20 Javascript
jquery的live使用注意事项
2014/02/18 Javascript
Javascript之BOM(window对象)详解
2016/05/25 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
微信小程序-拍照或选择图片并上传文件
2017/01/06 Javascript
vue.js获取数据库数据实例代码
2017/05/26 Javascript
微信小程序对接七牛云存储的方法
2017/07/30 Javascript
Node.js自定义实现文件路由功能
2017/09/22 Javascript
jQuery中内容过滤器简单用法示例
2018/03/31 jQuery
JavaScript中为事件指定处理程序的五种方式分析
2018/07/27 Javascript
解决在Vue中使用axios POST请求变成OPTIONS的问题
2020/08/14 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
2020/09/24 Javascript
vue项目查看vue版本及cli版本的实现方式
2020/10/24 Javascript
[36:05]DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs Optic
2018/04/01 DOTA
python轻松查到删除自己的微信好友
2016/01/10 Python
Python的Flask框架中配置多个子域名的方法讲解
2016/06/07 Python
Python实现简单的四则运算计算器
2016/11/02 Python
python和ruby,我选谁?
2017/09/13 Python
python实现守护进程、守护线程、守护非守护并行
2018/05/05 Python
对Python信号处理模块signal详解
2019/01/09 Python
Django的ListView超详细用法(含分页paginate)
2020/05/21 Python
sklearn的predict_proba使用说明
2020/06/28 Python
解决pytorch 交叉熵损失输出为负数的问题
2020/07/07 Python
Python同时处理多个异常的方法
2020/07/28 Python
财务经理的岗位职责
2013/12/17 职场文书
效能监察建议书
2014/05/19 职场文书
2014年公务员工作总结
2014/11/18 职场文书
学习商务礼仪心得体会
2016/01/22 职场文书
python用字节处理文件实例讲解
2021/04/13 Python
python 破解加密zip文件的密码
2021/04/22 Python