pytorch中Mini-batch批处理实现函数xx.unsqueeze(0)

在进行特征图可视化时,发现了一个函数运行之后输入图像的tensor的维度发生了变化,不能直接转化为numpy数据进行图像显示,这个函数是**.unsqueeze(0)** 下面贴出该函数运行过后tensor维度的变化截图:
运行前:
pytorch中Mini-batch批处理实现函数xx.unsqueeze(0)_第1张图片
tensor的维度是(3,224,224)含义是3通道大小为224*224的图像转化为了一个tensor向量,运行如下语句后:

image_info = image_info.unsqueeze(0)

结果是:
pytorch中Mini-batch批处理实现函数xx.unsqueeze(0)_第2张图片
这时输入的张量tensor维度比输入前多了一维,可以发现tensor后面的中括号[ ]多了一层,意味着输入前的那个张量在这里变成了某个列表的第0个元素,随着一个批次处理的图片数据增加,那这个列表就会有第1个、第2个,,,元素填充进去,总体组成一个张量进入网络进行处理,于是就实现了批处理的功能。这时torch.Size([batch size,in_channels,height,width])是它的内部参数。
当然 **.squeeze(0)**就是进行反操作,当你选中其中一个图片的tensor后进行反操作,该图片的tensor维度就会从4维降到3维,从而可以直接对该图片进行显示等处理操作,因为图像一般至多3维,不降维无法使用相关函数直接处理。

你可能感兴趣的:(可视化,人工智能,深度学习,python,pytorch)