当前位置: 首页 > news >正文

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

1 torch.rand:构造均匀分布张量 torch.rand是用于生成均匀随机分布张量的函数,从区间[0,1)的均匀分布中随机抽取一个随机数生成一个张量,其调用方法如下所示: torch.rand(sizes, outNone) ➡️ Tensor 参数: sizes&…...

2023第二届全国大学生数据分析大赛A完整原创论文(含摘要+问题分析+模型建立与求解+python代码)

大家好,从昨天肝到现在,终于完成了2023第二届全国大学生数据分析大赛A题某电商平台用户行为分析与挖掘的完整论文啦。 给大家看一下目录吧: 目录 摘 要: 10 一、问题重述 12 二.问题分析 13 2.1问题一 13 2.2问…...

Qt 面试指南

一、c基础知识 1、进程和线程的同步方式 进程:1)管道,是内核里的一串缓存 2)消息队列 3)共享内存 4)信号量机制 5)信号 6)socket 线程:1)等待通知机制 2&…...

开利网络的数字化技术加持下,加快扶贫和乡村振兴的效果和进程!

今日,来自山区省份的从事公益、区域民族文化传播、帮扶贫困地区脱贫、农业兴村贵州项目组一行来开利进行数字化脱贫、帮助乡村振兴解决方案探讨交流,交流中,开利网络总结出历经多年实践验证且行之有效的数字化经营、数字化建设经验得到与会成…...

PR剪辑视频做自媒体添加字幕快速方式(简单好用的pr视频字幕模板)

如何选择合适的字幕添加进短视频呢?首先要先确定增加的视频风格,简约、商务、科技感、炫酷;再确定用途,注释、标记、语音翻译、引用、介绍;最后在相应的模板中挑选几个尝试,悬着一个最切合主题的使用&#…...

金融行业文件摆渡,如何兼顾安全和效率?

金融行业是数据密集型产业,每时每刻都会产生海量的数据,业务开展时,数据在金融机构内部和内外部快速流转,进入生产的各个环节。 为了保障基础的数据安全和网络安全,金融机构采用网络隔离的方式来隔绝外部网络的有害攻击…...

[足式机器人]Part2 Dr. CAN学习笔记-自动控制原理Ch1-1开环系统与闭环系统Open/Closed Loop System

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-自动控制原理Ch1-1开环系统与闭环系统Open/Closed Loop System EG1: 烧水与控温水壶EG2: 蓄水与最终水位闭环控制系统 EG1: 烧水与控温水壶 EG2: 蓄水与最终水位 h ˙ q i n A − g h A R \dot{…...

每日一题,杨辉三角

给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRows 1 输出: [[1]]...

Java_Mybatis_缓存

缓存 1.概述 Mybatis 缓存:MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制 2.会话缓存(一级缓存) sqlSession 级别的,也就是说,使用同一个 sqlSession 查询同一 sql 时&#x…...

C#基础面试题集

C#基础 1. 简述值类型和引用类型有什么区别2. C# String类型比 stringBuilder 类型的优势是什么?3.面向对象的三大特点4.请简述private,public,protected,internal的区别5.结构体和类6.请描述Interface与抽象类之间的不同7.在类的构造函数前…...

可视化监管云平台EasyCVR宠物粮食食品厂智能视频监控方案

由于我国养宠物群体的不断膨胀,宠物市场也占据了经济的很大一部分,宠物做为人类的好朋友,可以给人们带来极高的精神抚慰,作为“毛孩子”家长,爱宠人士自然不会亏待自家宠物,都会选择最好的口粮以供宠物食用…...

ArkUI组件

目录 一、概述 声明式UI 应用模型 二、常用组件 1、Image:图片展示组件 示例 配置控制授权申请 2、Text:文本显示组件 示例 3、TextInput:文本输入组件 示例 4、Button:按钮组件 5、Slider:滑动条组件 …...

C语言--动态内存【详细解释】

一.动态内存介绍🍗 在C语言中,动态内存分配是指在程序运行时根据需要动态申请内存空间,以便在程序的不同阶段存储和使用数据。动态内存的分配与释放需要一组函数来实现,包括malloc、calloc、realloc和free。 malloc: 函数用于分配…...

施工现场安全管理系统

伴随着社会发展,各行各业都十分注重安全生产管理;建筑施工行业,由于施工环境具有复杂性、危险源较多、施工人员素质参差不齐等因素,导致安全事故时有发生;凡尔码施工安全管理系统,灵活根据施工现场管理要求…...

电线电缆行业生产管理MES系统解决方案

电线电缆行业生产管理mes系统核心功能 基础数据管理:对基础数据进行统一管理,包括组织架构、原材料数据、设备数据、报工数据、检验数据、员工数据等工艺与BOM管理:对工艺标准进行统一管理,包括工艺的版本管理、关联型号管理&…...

滑动窗口最大值和前K个高频元素

滑动窗口最大值和前K个高频元素 239. 滑动窗口最大值 核心:建立一个单调队列,维护里面的最大值,并且从大到小的顺序即可!【只需要维护有可能成为窗口里最大值的元素就可以了,同时保证队列里的元素数值是由大到小的。…...

C语言实现在顺序表中找到最大值

用C语言实现在顺序表中找到最大值&#xff1a; #include <stdio.h> #define MAX_SIZE 100 int findMax(int arr[], int size) { int max arr[0]; // 假设第一个元素为最大值 for (int i 1; i < size; i) { // 从第二个元素开始遍历列表 if (…...

数字工厂管理系统建设层级分为哪几层

随着工业4.0时代的到来&#xff0c;数字工厂已成为制造业转型升级的必经之路。数字工厂管理系统作为数字工厂的核心组成部分&#xff0c;对于提高生产效率、降低成本、提升质量等方面具有重要意义。数字工厂管理系统的建设层级一般分为以下几个层次&#xff0c;本文将对其进行详…...

MySQL 8 update语句更新数据表里边的数据

数据重新补充 这里使用alter table Bookbought.bookuser add userage INT after userphone;为用户表bookuser在userphone列后边添加一个类型为INT的新列userage。 使用alter table Bookbought.bookuser add sex varchar(6) after userage ;为用户表bookuser在userage 列后边添…...

可视化监控云平台/智能监控平台EasyCVR国标设备开启音频没有声音是什么原因?

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。GB28181视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、云存…...

RISC-V开发板结合Python实现B站消息监测:硬件极客的IoT实践

1. 项目概述&#xff1a;当硬件极客遇上日常痛点前几天在极客社区里看到一个挺有意思的分享&#xff0c;一位开发者朋友用一块高性能的RISC-V开发板&#xff0c;结合自己写的Python脚本&#xff0c;做了一个B站未读消息的实时监测器。这项目乍一听有点“杀鸡用牛刀”的感觉——…...

SteamAutoCrack终极指南:5步掌握游戏DRM自动移除技术

SteamAutoCrack终极指南&#xff1a;5步掌握游戏DRM自动移除技术 【免费下载链接】Steam-auto-crack Steam Game Automatic Cracker 项目地址: https://gitcode.com/gh_mirrors/st/Steam-auto-crack 你是否曾为Steam游戏的DRM保护而烦恼&#xff1f;每次运行游戏都需要启…...

Android WebView进阶:从基础API到AndroidX WebKit实战解析

1. WebView基础&#xff1a;从调试到交互全解析 第一次接触WebView时&#xff0c;我完全被这个"浏览器套娃"搞懵了。直到踩了无数坑才发现&#xff0c;掌握这几个核心API就像拿到了打开混合开发大门的钥匙。调试模式绝对是开发者的第一道救命符 - 在Chrome地址栏输入…...

技能图谱:构建结构化知识体系,实现高效学习与成长

1. 项目概述&#xff1a;一个技能图谱的诞生与价值在技术社区里&#xff0c;我们经常看到各种“Awesome List”——那些按领域整理的工具、库和资源清单。它们很有用&#xff0c;但总感觉缺了点什么。直到我偶然在 GitHub 上看到了tenequm/skills这个仓库&#xff0c;它给我带来…...

别再被AD值乱跳搞懵了!CS1237电子秤芯片的5个硬件设计避坑点(附电路图)

别再被AD值乱跳搞懵了&#xff01;CS1237电子秤芯片的5个硬件设计避坑点&#xff08;附电路图&#xff09; 电子秤设计中最令人头疼的莫过于AD值不稳定问题。作为一款高精度Σ-Δ ADC芯片&#xff0c;CS1237在电子秤、压力测量等领域应用广泛&#xff0c;但硬件设计中的细微偏差…...

你的嵌入式数据记录仪方案:基于STM32CubeMX+FATFS+SD卡存储传感器数据(CSV格式实战)

嵌入式数据记录仪实战&#xff1a;STM32CubeMXFATFSSD卡构建工业级CSV存储方案 在工业物联网和智能硬件开发中&#xff0c;可靠的数据记录功能往往是产品核心价值所在。想象一下温室大棚的环境监控系统需要连续记录温湿度数据三个月&#xff0c;或者电力设备振动监测装置要在无…...

对比直接使用官方API,体验通过Taotoken进行多模型选型与切换的便捷性

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比直接使用官方API&#xff0c;体验通过Taotoken进行多模型选型与切换的便捷性 在实际的开发工作中&#xff0c;我们常常需要根据…...

零基础玩转Linux:CentOS安装、Xshell连接与文件权限全攻略

零基础玩转Linux:CentOS安装、Xshell连接与文件权限全攻略 目录 1、Linux系统简介 2、安装Linux 3、Linux相关配制 3.1 配制静态IP 3.2 安装Linux终端 3.3 安装ftp 3.4、Linux目录结构 4、Linux基本命令 4.1、关机与重启 4.2、文件与目录 4.3、日期与日历 4.4、帮助指令 4.5、…...

2025年知识竞赛行业趋势报告:智能化、场景化与生态融合

&#x1f4ca; 2025年知识竞赛行业趋势报告技术更智能 场景更融合 内容更鲜活 工具更普惠&#x1f680; 引言&#xff1a;变革中的竞赛生态知识竞赛&#xff0c;这一古老的知识检验与娱乐形式&#xff0c;在数字技术的持续赋能下&#xff0c;正经历着一场深刻的范式变革。从…...

AI Agent创业融资指南:投资人最看好的Agent项目特征与商业模式

AI Agent创业融资指南&#xff1a;投资人最看好的Agent项目特征与商业模式 各位技术创业者、产品经理、投资人朋友&#xff0c;晚上好&#xff01;我是深耕AI大模型落地与Agent赛道创业3年多、前后帮2个种子轮项目拿到近5000万天使/A轮融资、现在自己正在做垂直医疗场景诊断Age…...