pytorch从一个有重复值的tensor中随机取5个下标,且取的下表对应的数值不同
时间: 2024-04-09 16:28:21 浏览: 115
Pytorch 之修改Tensor部分值方式
要在一个有重复值的tensor中随机取5个不同的下标,可以使用`torch.unique()`函数来获取tensor中的唯一值,并结合`torch.randperm()`函数来生成随机下标。下面是一个示例代码:
```python
import torch
# 原始的tensor
tensor = torch.tensor([1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10])
# 获取tensor中的唯一值
unique_values = torch.unique(tensor)
# 生成随机下标
indices = torch.randperm(unique_values.size(0))[:5]
# 根据下标取出对应的数值
selected_values = unique_values[indices]
print(indices)
print(selected_values)
```
这段代码会输出随机生成的下标以及对应的数值。注意,由于是随机生成的,每次运行结果可能会不同。同时,由于去重后的数值较少,可能无法取到5个不同的下标,取决于原始tensor中有多少个不同的值。
阅读全文