将3通道pytorch张量从张量列表转换为1通道pytorch张量



假设我有一个张量list,volumes,我可以遍历它:

for volume in range(len(volumes)):
print (volume.shape)

torch.Size([3, 512, 512, 222])
<class 'torch.Tensor'>
torch.Size([3, 512, 512, 185])
<class 'torch.Tensor'>
torch.Size([3, 512, 512, 271])
<class 'torch.Tensor'>
torch.Size([3, 512, 512, 261])
<class 'torch.Tensor'>
torch.Size([3, 512, 512, 215])
<class 'torch.Tensor'>
torch.Size([3, 512, 512, 284])
<class 'torch.Tensor'>
torch.Size([3, 512, 512, 191])
<class 'torch.Tensor'>

如何将所有卷的通道从3更改为1 ?

感谢

如果您希望删除前两个通道,那么您应该只保留最后一个dim=-1即。dim=2:

>>> vnew = [v[2:] for v in volumes] # list of (1, 512, 512, *)

如果您想在过程中压缩单例维度,则执行:

>>> vnew = [v[2] for v in volumes] # list of (512, 512, *)

如果您只想为每个卷保留第一个通道,您可以创建一个新的列表,如下所示:

new_volumes = [volume[0,...] for volume in volumes]

最新更新