PyTorch基础学习:生成随机数(torch.rand()、torch.randn()、torch.randint()、torch.randperm())

🚀 PyTorch基础学习:生成随机数(torch.rand()、torch.randn()、torch.randint()、torch.randperm()) 🚀

在这里插入图片描述

🌈 个人主页:高斯小哥
🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化Python基础【高质量合集】PyTorch零基础入门教程
👈 希望得到您的订阅和支持~ 💡 创作高质量博文(平均质量分92+),分享更多关于深度学习、PyTorch、Python领域的优质内容!(希望得到您的关注~)


  👋大家好,欢迎来到我的技术博客!今天,我们将深入探讨PyTorch中生成随机数的几种方法,包括torch.rand()torch.randn()torch.randint()torch.randperm()。这些函数在深度学习和神经网络训练中经常用到,因此了解它们的工作原理和用法非常重要。

文章关键词:#PyTorch #随机数生成 #torch.rand() #torch.randn() #torch.randint() #torch.randperm() #深度学习 #神经网络训练

一、🤔 为什么要生成随机数?

  在深度学习中,随机数扮演着非常重要的角色。它们通常用于初始化神经网络权重、构建数据集、进行数据增强、随机打乱训练数据等。通过使用随机数,我们可以增加模型的泛化能力,防止过拟合,并提高模型的性能。

二、😅 如何生成随机数?

  1. torch.rand()

  torch.rand()函数用于生成具有均匀分布的随机数,这些随机数的范围在[0, 1)之间。它接受一个形状参数(shape),返回一个指定形状的张量(Tensor)。

示例代码:

import torch

# 生成一个形状为(3, 4)的张量,元素值在[0, 1)之间
tensor = torch.rand((3, 4))
print(tensor)

输出:

tensor([[0.1490, 0.7928, 0.0411, 0.5075],
        [0.0754, 0.8043, 0.7533, 0.1298],
        [0.5087, 0.1185, 0.6706, 0.9509]])

进程已结束,退出代码0
  1. torch.randn()

  torch.randn()函数用于生成具有标准正态分布的随机数,即均值为0,标准差为1的随机数。它同样接受一个形状参数,并返回一个指定形状的张量。

示例代码:

import torch

# 生成一个形状为(3, 4)的张量,元素值服从标准正态分布
tensor = torch.randn((3, 4))
print(tensor)
print("均值:", tensor.mean().item())
print("标准差:", tensor.std().item())

输出:

tensor([[ 1.7490, -0.1910, -0.6926,  0.2398],
        [ 0.9135, -0.3359,  1.0442,  0.7824],
        [-0.7138,  0.1682, -1.2245, -0.3747]])
均值: 0.1137121245265007
标准差: 0.868906557559967

进程已结束,退出代码0
  1. torch.randint()

  torch.randint()函数用于生成指定范围内的整数随机数。它接受三个参数:low(最小值)、high(最大值)和形状(shape)。返回的张量中的元素值将在**[low, high)**范围内。

示例代码:

import torch

# 生成一个形状为(3, 4)的张量,元素值在[0, 10)之间
tensor = torch.randint(0, 10, (3, 4))
print(tensor)

输出:

tensor([[4, 0, 8, 4],
        [0, 9, 4, 3],
        [0, 3, 9, 3]])

进程已结束,退出代码0
  1. torch.randperm()

  torch.randperm()函数用于生成一个从0到n-1的随机整数排列。它接受一个参数n,返回一个长度为n的张量,其中包含从0到n-1的随机整数,每个整数只出现一次

示例代码:

import torch

# 生成一个长度为10的随机整数排列
tensor = torch.randperm(10)
print(tensor)

输出:

tensor([0, 7, 1, 2, 9, 6, 3, 5, 4, 8])

进程已结束,退出代码0

三、🎯 其他注意事项

  • 在使用随机数函数时,需要注意生成的随机数是否满足你的需求,比如分布类型、范围等。
  • 在进行深度学习实验时,设置随机数种子(random seed)可以帮助我们复现实验结果。可以使用torch.manual_seed()函数来设置随机数种子。
  • 生成随机数时,要注意张量的形状和数据类型,确保它们与你的模型和数据相匹配。

四、🎁 回顾与收获

  通过本文的学习,我们了解了PyTorch中生成随机数的几种方法,包括torch.rand()torch.randn()torch.randint()torch.randperm()。这些函数在深度学习和神经网络训练中非常重要,掌握它们的用法可以帮助我们更好地进行模型训练和数据预处理。同时,我们还学习了随机数的一些注意事项,如分布类型、范围、随机数种子等。希望本文能对你的PyTorch学习有所帮助!

五、🤝 期待与你共同成长

  在深度学习和PyTorch的学习过程中,我们可能会遇到各种问题和挑战。但是,只要我们保持学习的热情,勇于探索和实践,相信我们一定能够不断进步,共同成长。期待你在实践中运用本文所学的知识,分享你的经验和技巧,让我们一起在深度学习的道路上不断前行!

PyTorch中,torch.rand()函数用于生成均匀分布的随机数,而torch.randn()函数用于生成标准正态分布的随机数。 具体来说,torch.rand()函数生成的随机数在[0, 1)范围内,形状由参数size指定。例如,torch.rand(2, 3)会生成一个形状为2x3的张量,其中的元素值均匀分布在[0, 1)范围内。 而torch.randn()函数生成的随机数服从标准正态分布(均值为0,标准差为1),形状由参数size指定。例如,torch.randn(2, 3)会生成一个形状为2x3的张量,其中的元素值符合标准正态分布。 另外,还有torch.randint()函数用于生成指定范围内的随机整数。函数的参数包括范围的上下界、形状等。例如,torch.randint(1, 4, (2, 3, 2))会生成一个形状为2x3x2的张量,其中的元素值在1到4之间。 总结来说,torch.rand()生成均匀分布的随机数,torch.randn()生成标准正态分布的随机数,而torch.randint()生成指定范围内的随机整数。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Pytorchrandrandn, random以及normal的区别](https://blog.csdn.net/weixin_44739213/article/details/108617473)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [torch.rand()、torch.randn()、torch.randint()、torch.randperm()用法](https://blog.csdn.net/leilei7407/article/details/107710852)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高斯小哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值