没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
pytorch随机采样操作随机采样操作SubsetRandomSampler()
主要介绍了pytorch随机采样操作SubsetRandomSampler(),具有很好的参考价值,希望对大家有所帮助。一起
跟随小编过来看看吧
这篇文章记录一个采样器都随机地从原始的数据集中抽样数据。抽样数据采用permutation。 生成任意一个下标重排,从而利
用下标来提取dataset中的数据的方法
需要的库需要的库
import torch
使用方法使用方法
这里以MNIST举例
train_dataset = dsets.MNIST(root='./data', #文件存放路径
train=True, #提取训练集
transform=transforms.ToTensor(), #将图像转化为Tensor
download=True)
sample_size = len(train_dataset)
sampler1 = torch.utils.data.sampler.SubsetRandomSampler(
np.random.choice(range(len(train_dataset)), sample_size))
代码详解代码详解
np.random.choice()
#numpy.random.choice(a, size=None, replace=True, p=None)
#从a(只要是ndarray都可以,但必须是一维的)中随机抽取数字,并组成指定大小(size)的数组
#replace:True表示可以取相同数字,False表示不可以取相同数字
#数组p:与数组a相对应,表示取数组a中每个元素的概率,默认为选取每个元素的概率相同。
那么这里就相当于抽取了一个全排列
torch.utils.data.sampler.SubsetRandomSampler
# 会根据后面给的列表从数据集中按照下标取元素
# class torch.utils.data.SubsetRandomSampler(indices):无放回地按照给定的索引列表采样样本元素。
所以就可以了。
补充知识:补充知识:Pytorch学习之学习之torch----随机抽样、序列化、并行化随机抽样、序列化、并行化
1. torch.manual_seed(seed)
说明:设置生成随机数的种子,返回一个torch._C.Generator对象。使用随机数种子之后,生成的随机数是相同的。
参数:
seed(int or long) -- 种子
>>> import torch
>>> torch.manual_seed(1)
<torch._C.Generator object at 0x0000019684586350>
>>> a = torch.rand(2, 3)
>>> a
tensor([[0.7576, 0.2793, 0.4031],
[0.7347, 0.0293, 0.7999]])
>>> torch.manual_seed(1)
<torch._C.Generator object at 0x0000019684586350>
>>> b = torch.rand(2, 3)
>>> b
tensor([[0.7576, 0.2793, 0.4031],
[0.7347, 0.0293, 0.7999]])
>>> a == b
tensor([[1, 1, 1],
[1, 1, 1]], dtype=torch.uint8)
2. torch.initial_seed()
说明:返回生成随机数的原始种子值
>>> torch.manual_seed(4)
<torch._C.Generator object at 0x0000019684586350>
资源评论
weixin_38566318
- 粉丝: 7
- 资源: 972
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功