示例代码:
import torch# 譬如:4张图片,每张三个通道,每个通道28行28列的像素a = torch.rand(4, 3, 28, 28)# 在第一个维度上取后0和1,等同于取第一、第二张图片print(a[:2].shape) #torch.Size([2, 3, 28, 28])# 在第一个维度上取0和1,在第二个维度上取0,# 等同于取第一、第二张图片中的第一个通道print(a[:2, :1, :, :].shape) #torch.Size([2, 1, 28, 28])# 在第一个维度上取0和1,在第二个维度上取1,2,# 等同于取第一、第二张图片中的第二个通道与第三个通道print(a[:2, -2:, :, :].shape) #torch.Size([2, 2, 28, 28])# 使用step隔行采样# 在第一、第二维度取所有元素,在第三、第四维度隔行采样print(a[:, :, 0:28:2, 0:28:2].shape)print(a[:, :, ::2, ::2].shape) # 等同于上面语句#torch.Size([4, 3, 14, 14])#再来一个print(a[:, :, 0:28:3, 0:28:3].shape)#torch.Size([4, 3, 10, 10])
如果觉得《python pytorch tenser 索引 slice 切片》对你有帮助,请点赞、收藏,并留下你的观点哦!