torch uint8 筛选数据

本文介绍了在PyTorch中,uint8数据类型不能进行乘法操作的特点,并讨论了如何进行数据类型转换。转换数据类型时,原始数据保持不变,主要改变的是筛选规则。此外,文章提到了torch.tensor的dtype参数,提供了八种不同的数据类型选择,其中默认类型为torch.FloatTensor。同时,device参数用于指定tensor的内存分配位置,可以是CPU或CUDA设备,并可以选择特定设备编号。
摘要由CSDN通过智能技术生成

iou > 0.5相当于uint8相当于byte类型,不能进行乘法操作。

数据类型转换:

转换后数据本身不变,只是筛选的时候规则改变了,

index=torch.Tensor([0,1,1]).type(torch.ByteTensor)
print(index)
index=index.type(torch.FloatTensor)
print(index)

 

import torch
m=torch.Tensor([0.1,0.2,0.3])

iou=torch.Tensor([0.5,0.6,0.7])
a=iou > 0.5

index=torch.Tensor([0,1,1]).type(torch.ByteTensor)
m[index]=2
m[a]=2
#a与index结果一样,因为是ByteTensor,这里0,1代表每一个位置是否有效
print(m)
#tensor([0.1000, 2.0000, 2.0000])

m=torch.Tensor([0.1,0.2,0.3])
index=torch.Tensor([0,1,1]).type(torch.LongTensor)#这里0,1代表序号
#

在PyTorch中,可以使用torch.index_select()和torch.gather()方法来实现条件筛选torch.index_select()方法可以按照给定的索引从输入张量中选择元素。该方法的语法如下: torch.index_select(input, dim, index, *, out=None) → Tensor 其中,input是输入张量,dim是要选择的维度,index是选择的索引。例如,如果我们有一个形状为(3, 4)的张量x,并且想要选择第一维度上索引为[0, 2]的元素,可以使用torch.index_select()方法如下: torch.index_select(x, 0, torch.tensor([0, 2])) torch.gather()方法也可以用于条件筛选,它可以根据给定的索引从输入张量中选择元素,并按照索引的形状返回结果。该方法的语法如下: torch.gather(input, dim, index, *, out=None) 其中,input是输入张量,dim是要选择的维度,index是选择的索引。例如,如果我们有一个形状为(2, 3)的张量x,并且想要选择第一维度上索引为[[0, 1, 1]]的元素,可以使用torch.gather()方法如下: torch.gather(x, 0, torch.LongTensor([[0, 1, 1]])) 另外,如果我们想要选择第二维度上索引为[[0, 1, 1], [1, 1, 1]]的元素,可以使用torch.gather()方法如下: torch.gather(x, 1, torch.LongTensor([[0, 1, 1], [1, 1, 1]]))<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【pytorch】1.5 tensor 按条件筛选](https://blog.csdn.net/weixin_37804469/article/details/124579728)[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: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AI算法网奇

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

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

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

打赏作者

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

抵扣说明:

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

余额充值