深度学习与PyTorch入门实战 - 14. Tensor高阶## PyTorch ## 高阶OP 主讲人:龙良曲 ## Tensor advanced operation ## Where ## Gather ## where torch.where(condition, x, y) → Tensor Return a tensor of elements selected from either x or y, depending on condition [0., 0.]]) 8 9 In [200]: b 10 tensor([[1., 1.], 11 [1., 1.]]) 12 13 In [203]: torch.where(cond>0.5, a, b) 14 Out[203]: 15 tensor([[0., 0.], 16 [0., 1.]]) ## gather torch0 码力 | 8 页 | 501.85 KB | 2 年前3
【PyTorch深度学习-龙龙老师】-测试版2021122、1 门科目 可以看到,gather 的采样方式与 index_select 等的采样方式是完全不同的,读者需要仔细体会两者的区别。 #### 5.6.4 Where 采样 通过 torch.where(cond, a, b) 操作可以根据 cond 条件的真假从参数 A 或 B 中读取数据,条件判定规则如下: $$ o_{i}=\left\{\begin{aligned}&a 构造采样条件 cond = torch.tensor([[True, False, False], [False, True, False], [True, True, False]]) torch.where(cond, a, b) # 根据条件从 a, b 中采样 Out $$ 53 $$ : tensor([[1., 0., 0.], [0., 1., 0.] 可以看到,返回的张量中为 1 的位置全部来自张量 a,返回的张量中为 0 的位置来自张量 b。 当参数 a=b=None 时,即 a 和 b 参数不指定,torch.where 会返回 cond 张量中所有 True 的元素的索引坐标,此时 torch.where 等价于 torch.nonzero 函数。考虑如下 cond 张量: In [54]: cond # 构造的 cond 张量 Out $$ 540 码力 | 439 页 | 29.91 MB | 2 年前3
共 2 条
- 1













