torch 如何实现两点分布采样,100个样本中20个样本为1,80个为2

方法1

可以使用 PyTorch 中的 torch.distributions 模块实现两点分布采样。具体来说,可以使用 Categorical 分布将数字1和数字2的概率分别设为0.2和0.8,然后调用 sample() 方法进行采样。

下面是实现上述功能的代码示例:

import torch
# 创建 Categorical 分布(数字1和数字2的概率分别设为0.2和0.8)
probs = torch.tensor([0.2, 0.8])
dist = torch.distributions.Categorical(probs)
# 从分布中采样100个样本
samples = dist.sample(torch.Size([100]))
# 统计样本中数字1和数字2的数量
count_1 = torch.sum(samples == 0)
count_2 = torch.sum(samples == 1)
print(f"数字1的数量:{count_1}")
print(f"数字2的数量:{count_2}")

输出结果类似于:

数字1的数量:22
数字2的数量:78

方法2

可以先使用 torch.ones()torch.zeros() 函数生成分别包含20个数字1和80个数字2的张量,然后使用 torch.cat() 函数将它们拼接在一起,再使用 torch.randperm() 函数对其进行打乱。

下面是实现上述功能的代码示例:

import torch
# 生成包含20个数字1和80个数字2的张量,并拼接在一起
ones_tensor = torch.ones(20)
zeros_tensor = torch.zeros(80)
data_tensor = torch.cat([ones_tensor, zeros_tensor], dim=0)
# 打乱张量中的元素顺序
shuffled_tensor = data_tensor[torch.randperm(data_tensor.shape[0])]
print(shuffled_tensor)

输出结果为:

tensor([0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 1., 0., 0., 0., 1., 0., 0., 1.,1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 0., 0., 0., 0.,0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 0., 0., 0., 0., 1., 0., 0.,0., 0., 0., 0., 1., 0., 0., 0., 1., 1., 0., 0., 1., 0., 0., 0., 0., 1.,1., 0., 0., 0., 0., 1., 1., 0., 0., 0., 0., 1., 0., 0., 0., 0., 0., 0.,0., 0., 0., 0., 0., 0., 0., 0., 0., 1.])

其中,数字1被表示为1.0,数字2被表示为2.0。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/202192.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rename--统一的PRF

将ARF/PRF进行合并,合同之后的不见,称之为统一的PRF(Physical Register File);存储的是speculative的,以及正确的(retire)寄存器值;

【已解决】Qt mouseMoveEvent、mouseReleaseEvent失效无法触发

问题背景 我有一个派生自QGraphicsObject的类,这个类其实就是同时继承了QGraphicsItem和QObject的类 相当于在QGraphicsItem的基础上增加了事件消息的功能 我派生出来的这个类主要是实现了由多个点组成的多边形 现在想实现一个功能,拖动其中的某个点…

吉利护航,宣称比友商“更懂车”,魅族造车的底气与底色

继小米、华为后,又一家手机厂商宣布跨界造车。 在近日举办的2023魅族秋季无界生态发布会上,星纪魅族集团(下称“魅族”)董事长兼CEO沈子瑜宣布,魅族正式进入汽车市场,将在2024年第一季度启动“DreamCar共创…

promise使用示例

下面是一个 Promise 使用示例,通过 Promise 实现异步操作的链式调用: const getUser (userId) > {return new Promise((resolve, reject) > {// 模拟异步请求setTimeout(() > {const users [{ id: 1, name: Alice },{ id: 2, name: Bob },{ …

按需分发饼干

题意: 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j&#xff0c…

ChatGPT学习笔记

1 模型训练 ChatGPT在训练时使用了PPO方法;

【STM32】STM32学习笔记-课程简介(01)

00. 目录 文章目录 00. 目录01. 课程简介02. 硬件设备03. 软件工具04. 硬件套件4.1 面包板和跳线/飞线4.2 杜邦线和STM32最小系统板4.3 STLINK和OLED显示屏4.4 LED和按键4.5 电位器和蜂鸣器4.6 传感器和旋转编码器4.7 USB转串口和MPU60504.8 Flash闪存和电机模块4.9 SG90舵机 0…

win10与 vm虚拟机win7共享文件夹创建

1:在win10(主机)电脑先随意共享一个文件夹 2:在win10(主机)上创建一个网络映射 右键此电脑选择映射网络驱动器 成功后会多出这个网络位置 3:win7虚拟机设置 在虚拟机中点击计算机右键添加一个网络位置

C# Onnx CenterNet目标检测

目录 效果 模型信息 项目 代码 下载 效果 模型信息 Inputs ------------------------- name:input.1 tensor:Float[1, 3, 384, 384] --------------------------------------------------------------- Outputs ------------------------- name&a…

安卓开发引入网络图片

<ImageViewandroid:id"id/img01"android:layout_width"match_parent"android:layout_height"200dp"android:layout_weight"1"/>ImageView加载网路图片 第一步&#xff1a;添加网络权限 <uses-permission android:name"…

vue使用实现录音功能js-audio-recorder

前言 最近项目中需要实现一个录音上传功能&#xff0c;用于语音评论可以上录音。 下载插件&#xff1a; npm i js-audio-recorder完整代码 <template><div style"padding: 20px;"><h3>录音上传</h3><div style"font-size:14px"…

“轻松管理视频文件:高效归类与统一重命名“

随着电子设备的普及&#xff0c;我们的视频文件可能来自各种不同的源头&#xff0c;如何高效地管理和查找这些文件成为了一个问题。今天&#xff0c;我们将为您提供一个完美的解决方案——自动归类并统一重命名视频文件。 首先&#xff0c;第一步&#xff0c;我们要进入文件批…

【Python百宝箱】优化 Python 中的科学计算与建模:从 SymPy 到 Optuna

掌握Python科学计算&#xff1a;符号运算、数值计算与模型优化 前言 本文将带您深入了解 Python 中一系列重要的科学计算与优化库。从 SymPy 提供的符号计算&#xff0c;到 scikit-optimize 的贝叶斯优化&#xff0c;再到 NumPy 和 SciPy 的数值计算和统计建模&#xff0c;以…

Unsupported class file major version xx

Java SE 和 Major Version 对应关系如下&#xff1a; Java SEMajor VersionHex18620x3E17610x3D16600x3C15590x3B14580x3A13570x3912560x3811550x3710540x369530x358520x347510x336.0500x325.0490x311.4480x301.3470x2F1.2460x2E1.1450x2D 修改对应SE和major关系可以解决如…

我一人全干!之vue3后台管理中的大屏展示。

使用大屏展示的时候有很多种场景&#xff0c;众多场景都是为了实现大屏自适应。 大屏&#xff0c;顾名思义&#xff0c;就是放在一个固定的屏幕上看的&#xff0c;即使你不做自适应&#xff0c;放在一个固定的屏幕上看也没啥问题&#xff0c;但是很多做大屏的是为了在PC端看&am…

Python中 长度判断与限制

#1.长度判断与限制 # "raise" 是一个 Python 中用于抛出异常的关键字这允许程序员在发生错误或不符合预期条件的情况下&#xff0c; # 提前终止程序的执行并给出相应的错误信息。 def ren(name: str, age: int):if len(name) > 3:raise ValueError("Name len…

【JAVA】Maven构建java-grpc-protobuf代码生成测试

本次是通过Maven工具构建Java测试工程&#xff0c;需要将原本通过gradle构建的项目需要通过maven构建加入公司代码库&#xff0c;通过Maven构建涉及到接下来要介绍的插件&#xff0c;总是发现pom.xml编译不通过&#xff0c;看到网上都是千篇一律的插件配置&#xff0c;自己就是…

MySQL 高级函数

1. MySQL 高级函数BIN(x) MySQL高级函数BIN(x)用于将一个整数转换为二进制字符串。 语法&#xff1a; BIN(x)示例&#xff1a; SELECT BIN(10);这将返回’1010’&#xff0c;表示整数10的二进制表示为1010。 2. MySQL 高级函数BINARY(s) MySQL高级函数BINARY(s)用于将字符…

软件产品研发过程 - 二、概要设计

软件产品研发过程 - 概要设计 相关系列文章 软件产品研发管理经验总结-管理细分 软件研发管理经验总结 - 事务管理 软件研发管理经验总结 - 技术管理 软件产品研发过程 - 二、概要设计 目录 软件产品研发过程 - 概要设计一、概要设计概述二、概要设计过程1、模块概述2、应用场景…

68从零开始学Java之Set集合都有哪些特性

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 在上一篇文章中&#xff0c;壹哥带大家学习了List集合的用法和特性&#xff0c;尤其是对ArrayList和L…