pytorch创建tensor函数详情
作者:就是一顿骚操作 发布时间:2021-10-30 15:09:56
标签:pytorch,创建,tensor,函数
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]])
来源:https://blog.csdn.net/weixin_36893273/article/details/123544373
0
投稿
猜你喜欢
- 通过使用bootstrap框架,并配合Django自带的Paginator分页组件即可实现简单的分页效果。1.创建MyWeb项目python
- 代码如下:ALTER function [dbo].[GetOrderNum]( @ebaystockflag varchar(20)//规
- 1. 题目编写程序, 4名牌手打牌,计算机随机将52张牌(不含大小鬼)发给4名牌手,在屏幕上显示每位牌手的牌。提示:设计出3个类:Card类
- 一、Python下载1.进入Python官网:https://www.python.org/2.选择windows版本(Download &
- 那是一杠还是两杠呢?最简单的方式就是拿出钱包,掏出张“新”的50或100,翻到背面的银线上,就会发现两杠的符号。这个是以前跟同事在讨论是一杠
- 变量什么是变量?变量是在程序运行时,能存储计算结果或能表示值得抽象概念。简单地说,变量就是在程序运行时,记录数据用的变量定义格式:变量名称=
- 网络安全问题很重要,尤其是保证数据安全,遇到很多在写接口的程序员直接都是明文数据传输,在我看来这是很不专业的。本人提倡经过接口的数据都要进行
- 1998年,W3C发布HTML 4.0 Specification,里面清清楚楚的写了每个标签的用法和语义。搜索引擎的算法参考了W3C的语义
- 前言在任何编程语言中,代码需要根据不同的条件在给定的输入中做不同的决定和执行相应的动作。例如,在一个游戏中,如果玩家生命点为0,游戏结束。在
- 线程池线程池的创建 - concurrentconcurrent 是 Python 的内置包,使用它可以帮助我们完成创建线程池的任
- 过滤器模板层对变量的操作实际还有很多,过滤器就是其中一种。学过Linux系统的一定知道管道操作符,其可以将上一步输出直接作为下一步输入进行处
- by leecade :我聊下我的想法 从功能上看,能不能把JS分成3层结构1 语法设计,选择器,常用函数2 业务逻辑(比如封装好常用的TA
- 一、前言这篇文章主要是记录一下php生成静态页面的大致步骤,关于页面静态化,大家想必都听说过,但是真正用的时候反而不是很多。有些页面考虑到访
- <style> body {margin:10px;background-color:#ffffff;margin-t
- 数据结构与算法将序列分解为单独的变量问题:现在有一个包含 N 个元素的元组或者是序列,怎样将它里面的值解压后同时赋值给 N 个变量?解答:任
- 一、TCP1、tcp服务器创建#创建服务器from socket import *from time import ctime #导入cti
- 下载并选择MySQL的安装包由于MySQL一直在升级,所以当您阅读本文时,或许在其官方网站上已提供了新的正式版供你下载,因此,以下提供的链接
- 起因修改了表结构以后执行python3 manage.py migrate 报错:django.db.utils.OperationalEr
- mysql4.1以上版本连接时出现Client does not support authentic
- collections.namedtuple用于构造带字段名的元组。对应类型为typing.NamedTuple(可用作超类)。具名元组na