我有一个图片的张量,想从中随机 Select .我在找相当于np.random.choice()美元的.

import torch

pictures = torch.randint(0, 256, (1000, 28, 28, 3))

假设我想要10张这样的照片.

推荐答案

torch没有与np.random.choice()等效的实现,参见讨论here.另一种方法是使用混合索引或随机整数进行索引.

To do it with replacement:

  1. 生成n个随机索引
  2. 用这些指数为原始张量编制索引
pictures[torch.randint(len(pictures), (10,))]  

To do it without replacement:

  1. 洗牌索引
  2. 以前n个元素为例
indices = torch.randperm(len(pictures))[:10]

pictures[indices]

阅读更多关于torch.randinttorch.randperm的内容.第二个代码片段的灵感来自PyTorch论坛中的post.

Python-3.x相关问答推荐

如何匹配字母,数字,短划线,逗号,但不是如果没有数字和字母?

如何获得给定列表中所有可能的元素组合?

Pandas :从元组字典创建数据帧

如何将参数/值从测试方法传递给pytest的fixture函数?

数据框中从每个组/ID的底部删除行

通过 Pandas 通过用户定义函数重命名数据框列

Sunburst 折线图可视化

安装没有 sudo 权限的 python3 和 pip3

Python.在循环中填充字典的问题

以编程方式映射 uniprot ID 时如何解决 400 客户端错误?

为什么 Python 枚举中的可变值是同一个对象?

ImportError:没有名为资源的模块

内部如何使用 Python 语法?

使用 distutils 分发预编译的 python 扩展模块

如何在 Python3 中添加带有标志的命令行参数?

Python:&= 运算符

将 numpy.float64 列表快速转换为 Python 中的浮点数

Python 3 - Zip 是 pandas 数据框中的迭代器

Selenium Python - 处理没有这样的元素异常

TypeError:无法将系列转换为