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

在进行特征图可视化时,发现了一个函数运行之后输入图像的tensor的维度发生了变化,不能直接转化为numpy数据进行图像显示,这个函数是**.unsqueeze(0)** 下面贴出该函数运行过后tensor维度的变化截图:
运行前:
在这里插入图片描述
tensor的维度是(3,224,224)含义是3通道大小为224*224的图像转化为了一个tensor向量,运行如下语句后:

image_info = image_info.unsqueeze(0)

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


版权声明:本文为qq_44442727原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。