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

方法1

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

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

python 复制代码
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}")

输出结果类似于:

python 复制代码
数字1的数量:22
数字2的数量:78

方法2

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

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

python 复制代码
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)

输出结果为:

python 复制代码
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。

相关推荐
张较瘦_18 分钟前
[论文阅读] 人工智能+软件工程 | 结对编程中的知识转移新图景
人工智能·软件工程·结对编程
小Q小Q1 小时前
cmake编译LASzip和LAStools
人工智能·计算机视觉
yzx9910131 小时前
基于 Q-Learning 算法和 CNN 的强化学习实现方案
人工智能·算法·cnn
token-go1 小时前
[特殊字符] 革命性AI提示词优化平台正式开源!
人工智能·开源
cooldream20092 小时前
华为云Flexus+DeepSeek征文|基于华为云Flexus X和DeepSeek-R1打造个人知识库问答系统
人工智能·华为云·dify
Blossom.1185 小时前
使用Python和Scikit-Learn实现机器学习模型调优
开发语言·人工智能·python·深度学习·目标检测·机器学习·scikit-learn
scdifsn6 小时前
动手学深度学习12.7. 参数服务器-笔记&练习(PyTorch)
pytorch·笔记·深度学习·分布式计算·数据并行·参数服务器
DFminer7 小时前
【LLM】fast-api 流式生成测试
人工智能·机器人
郄堃Deep Traffic7 小时前
机器学习+城市规划第十四期:利用半参数地理加权回归来实现区域带宽不同的规划任务
人工智能·机器学习·回归·城市规划
海盗儿7 小时前
Attention Is All You Need (Transformer) 以及Transformer pytorch实现
pytorch·深度学习·transformer