Pytorch随机数生成常用的4种方法汇总
作者:嵌入式技术 发布时间:2022-02-07 09:25:34
标签:python,随机数,生成
一、torch.rand():构造均匀分布张量的方法
torch.rand
是用于生成均匀随机分布张量的函数,从区间[0,1)
的均匀分布中随机抽取一个随机数生成一个张量,其调用方法如下所示:
torch.rand(sizes, out=None) ➡️ Tensor
其中,
sizes
:用于定义输出张量的形状
简单的示例代码如下所示:
import torch
# 生成一个每个元素服从0-1均匀分布的4行3列随机张量
tensor_1 = torch.rand(4, 3)
print(tensor_1, tensor_1.type())
输出结果如下图所示:
二、torch.randn():构造标准正态分布张量的方法
torch.randn()
是用于生成正态随机分布张量的函数,从标准正态分布中随机抽取一个随机数生成一个张量,其调用方法如下所示:
torch.randn(sizes, out=None) ➡️ Tensor
其中,
sizes
:用于定义输出张量的形状
简单的示例代码如下所示:
import torch
# 生成一个每个元素均为标准正态分布的4行3列随机张量
tensor_2 = torch.randn(4, 3)
print(tensor_2, tensor_1.type())
输出结果如下图所示:
三、torch.randint():构造区间分布张量的方法
torch.randint()
是用于生成任意区间分布张量的函数,从标准正态分布中随机抽取一个随机数生成一个张量,其调用方法如下所示:
torch.randint(low=0, high, sizes, out=None) ➡️ Tensor
其中,
low
~high
:随机数的区间范围
sizes
:用于定义输出张量的形状
简单的示例代码如下所示:
# 生成一个每个元素均为[1-10]均匀分布的4行3列随机张量
tensor_3 = torch.randint(1, 10, (4, 3))
print(tensor_3, tensor_3.type())
输出结果如下图所示:
四、torch.randperm():根据生成的随机序号对张量进行随机排序的方法
torch.randint()
是用于对张量序号进行随机排序的函数,并根据生成的随机序列,其调用格式如下所示:
torch.randperm(n, out=None, dtype=torch.int64) ➡️ LongTensor
其中,
n
:一个整数,可以理解为张量某个方向的维度
dtype
:返回的数据类型(torch.int64
)
简单的示例代码如下所示:
下面代码实现的功能为:将二维张量按照行进行随机排序。
# 生成一个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])
输出结果如下图所示:
来源:https://blog.csdn.net/weixin_37926734/article/details/126614099


猜你喜欢
- 所以就为FCKeditor写了个InsertCode的插件。整个插件的制作过程非常简单:FCKeditor插件开发请参考FCKeditor官
- 自定义指令中无法获取this问题最近在使用自定义指令时遇到一个问题,我想在指令里通过this直接去访问vue实例数据,但是显示未定义,经大佬
- 代码如下:--相信大家肯定经常会把数据导入到数据库中,但是可能会有些记录行的所有列的数据是null,这为null的数据是我们不需要 --现在
- 概述路由是自定义url地址执行指定的函数,良好的路由定义可以对seo起到很好的效果。1. 基本路由gin框架封装了http库,提供了 GET
- vue做移动端经常碰到弹窗的需求, 这里写一个功能简单的vue弹窗popup.vue<template> <div cla
- 我就废话不多说了,大家还是直接看代码吧!cmd.py# -*- coding: utf-8 -*-from PySide import Qt
- 本文实例讲述了Python 面向对象部分知识点。分享给大家供大家参考,具体如下:面向对象:世间万物,皆可分类。---------------
- SQL Server 2005默认是不允许远程连接的,要想通过远程连接实现MSSQL,数据库备份,需要做如下设置:步骤/方法1.打开SQL
- sqlalchemy 对于行级锁有两种实现方式,with_lockmode(self, mode): 和 with_for_update(s
- 本文实例讲述了Python中bisect的用法,是一个比较常见的实用技巧。分享给大家供大家参考。具体分析如下:一般来说,Python中的bi
- python的注释方式和C语言、C++、java有所不同python语言中,使用‘#' 来进行注释,其次还有使用 三个引号来进行注释
- 如何更改 pandas dataframe 中两列的位置:把其中的某列移到第一列的位置。原来的 df 是:df = pd.read_csv(
- 本来想把这个页面用jade渲染出来、评论部分用vue,但是想了想觉得麻烦,最后还是整个用vue的组件搞定他吧。 先上在线demo:http:
- 关于yii2配置操作多个数据库进行操作,文档上面也给出了具体的配置,一个实战性的例子,也是很简单的,我们这里以权限控制为单个管理库dbnam
- 1.查询表名: 代码如下:select table_name,tablespace_name,temporary from user_tab
- 用python实现简单Server/Client文件传输:服务器端:#!/usr/bin/pythonimport SocketServer
- 在Web自动化测试的过程中,经常会被登录的验证码给卡住,不知道如何去通过验证码的验证。一般的情况下遇到验证码我们可以都可以找开发去帮忙解决,
- 关于变量分箱主要分为两大类:有监督型和无监督型对应的分箱方法:A. 无监督:(1) 等宽 (2) 等频 (3) 聚类B. 有监督:(1) 卡
- 关于with cube ,with rollup 和 grouping通过查看sql 2005的帮助文档找到了CUBE 和 ROLLUP 之
- 本文实例讲述了Python编程实现输入某年某月某日计算出这一天是该年第几天的方法。分享给大家供大家参考,具体如下:#基于 Pyth