pytorch中五种常用随机矩阵构造方法:rand、randn、randn_like、randint、randperm

本文主要是介绍pytorch中五种常用随机矩阵构造方法:rand、randn、randn_like、randint、randperm,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 torch.rand:构造均匀分布张量

torch.rand是用于生成均匀随机分布张量的函数,从区间[0,1)的均匀分布中随机抽取一个随机数生成一个张量,其调用方法如下所示:

torch.rand(sizes, out=None) ➡️ Tensor

参数:

  • sizes:用于定义输出张量的形状

示例代码:

import torch# 生成一个每个元素服从0-1均匀分布的4行3列随机张量
random_tensor = torch.rand(4, 3)
print('tensor:', random_tensor)
print('type:', random_tensor.type())
print('shape:', random_tensor.shape)

运行代码显示:

tensor: tensor([[0.4349, 0.8567, 0.7321],[0.4057, 0.0222, 0.3444],[0.9679, 0.0980, 0.8152],[0.1998, 0.7888, 0.5478]])
type: torch.FloatTensor
shape: torch.Size([4, 3])

2 torch.randn:构造标准正态分布张量

torch.randn()是用于生成正态随机分布张量的函数,从标准正态分布中随机抽取一个随机数生成一个张量,其调用方法如下所示:

torch.randn(sizes, out=None) ➡️ Tensor

参数:

  • sizes:用于定义输出张量的形状

示例代码:

import torch# 生成一个每个元素均为标准正态分布的4行3列随机张量
random_tensor = torch.randn(4, 3)
print('tensor:', random_tensor)
print('type:', random_tensor.type())
print('shape:', random_tensor.shape)

运行代码显示:

tensor: tensor([[ 0.7776,  0.6305,  0.1961],[ 0.1831, -0.4187,  0.1245],[ 0.3092, -1.0463, -0.6656],[-1.0098,  1.3861, -0.2600]])
type: torch.FloatTensor
shape: torch.Size([4, 3])

3 torch.randn_like:构造与输入形状相同正态分布张量

torch.randn_like()用于生成一个与输入张量大小相同的张量,其中填充了均值为 0 方差为 1 的正态分布的随机值,其调用方法如下所示:

torch.randn_like(input_tensor, dtype=None, layout=None, device=None, requires_grad=False) ➡️ Tensor

参数:

  • input_tensor(必需)- 其大小将用于生成输出张量的输入张量。

  • dtype(可选)- 输出张量所需的数据类型。默认为None,这意味着将使用输入张量的数据类型。

  • layout(可选)- 输出张量所需的内存布局。默认为None,这意味着将使用输入张量的内存布局。

  • device(可选)- 输出张量所需的设备。默认为None,这意味着将使用输入张量的设备。

  • requires_grad(可选)- 输出张量是否应该在反向传播期间计算其梯度。默认为False。

示例代码:

import torch# 生成一个每个元素均为标准正态分布的4行3列随机张量
tensor_x = torch.randn(4, 3)
tensor_y = torch.randn_like(tensor_x)print('tensor_x:', tensor_x)
print('type:', tensor_x.type())
print('shape:', tensor_x.shape)print('tensor_y:', tensor_y)
print('type:', tensor_y.type())
print('shape:', tensor_y.shape)

运行代码显示:

tensor_x: tensor([[ 5.5292e-01,  6.5111e-01, -6.0329e-04],[ 1.0402e+00, -7.4630e-01,  7.5701e-01],[ 8.8160e-02, -1.2581e+00, -1.8089e-01],[-4.2769e-01, -8.5043e-01, -5.8388e-01]])
type: torch.FloatTensor
shape: torch.Size([4, 3])
tensor_y: tensor([[ 0.2308,  0.3297, -0.6633],[ 1.7389,  0.6372, -1.1069],[-0.2415, -0.8585,  0.3343],[-1.2581, -0.5001,  0.0317]])
type: torch.FloatTensor
shape: torch.Size([4, 3])

4 torch.randint:构造区间分布张量

torch.randint()是用于生成任意区间分布张量的函数,从标准正态分布中随机抽取一个随机数生成一个张量,其调用方法如下所示:

torch.randint(low=0, high, sizes, out=None) ➡️ Tensor

参数:

  • low~high:随机数的区间范围

  • sizes:用于定义输出张量的形状

示例代码:

import torch# 生成一个每个元素均为[1-10]均匀分布的4行3列随机张量
tensor_int = torch.randint(1, 10, (4, 3))
print('tensor_int:', tensor_int)
print('type:', tensor_int.type())
print('shape:', tensor_int.shape)

运行代码显示:

tensor_int: tensor([[1, 7, 1],[3, 8, 7],[5, 2, 1],[5, 3, 6]])
type: torch.LongTensor
shape: torch.Size([4, 3])

5 torch.randperm:根据生成的随机序号对张量进行随机排序

torch.randint()是用于对张量序号进行随机排序的函数,根据生成的随机序列进行随机排序,其调用格式如下所示:

torch.randperm(n, out=None, dtype=torch.int64) ➡️ LongTensor

参数:

  • n:一个整数,可以理解为张量某个方向的维度

  • dtype:返回的数据类型(torch.int64

示例代码:

import torch# 生成一个0~3的随机整数排序
idx = torch.randperm(4)# 生成一个4行3列的张量
tensor_4 = torch.Tensor(4, 3)# 为了方便对比,首先输出tensor_4的结果
print("原始张量\n", tensor_4)# 下面输出随机生成的行序号
print("\n生成的随机序号\n", idx)# 下面的指令实现了在行的方向上,对tensor_4进行随机排序,并输出结果
print("\n随机排序后的张量\n", tensor_4[idx])

运行代码显示:

原始张量tensor([[0., 0., 0.],[0., 0., 0.],[0., 0., 0.],[0., 0., 0.]])生成的随机序号tensor([3, 0, 2, 1])随机排序后的张量tensor([[0., 0., 0.],[0., 0., 0.],[0., 0., 0.],[0., 0., 0.]])

这篇关于pytorch中五种常用随机矩阵构造方法:rand、randn、randn_like、randint、randperm的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/477147

相关文章

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例

《PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例》词嵌入解决NLP维度灾难,捕捉语义关系,PyTorch的nn.Embedding模块提供灵活实现,支持参数配置、预训练及变长... 目录一、词嵌入(Word Embedding)简介为什么需要词嵌入?二、PyTorch中的nn.Em

MySQL字符串常用函数详解

《MySQL字符串常用函数详解》本文给大家介绍MySQL字符串常用函数,本文结合实例代码给大家介绍的非常详细,对大家学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql字符串常用函数一、获取二、大小写转换三、拼接四、截取五、比较、反转、替换六、去空白、填充MySQL字符串常用函数一、

Java中Arrays类和Collections类常用方法示例详解

《Java中Arrays类和Collections类常用方法示例详解》本文总结了Java中Arrays和Collections类的常用方法,涵盖数组填充、排序、搜索、复制、列表转换等操作,帮助开发者高... 目录Arrays.fill()相关用法Arrays.toString()Arrays.sort()A

python生成随机唯一id的几种实现方法

《python生成随机唯一id的几种实现方法》在Python中生成随机唯一ID有多种方法,根据不同的需求场景可以选择最适合的方案,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习... 目录方法 1:使用 UUID 模块(推荐)方法 2:使用 Secrets 模块(安全敏感场景)方法

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP

golang中reflect包的常用方法

《golang中reflect包的常用方法》Go反射reflect包提供类型和值方法,用于获取类型信息、访问字段、调用方法等,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录reflect包方法总结类型 (Type) 方法值 (Value) 方法reflect包方法总结

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin