示例代码:

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])

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐