vutils.make_grid()与黑白图像有关的一个小体会

我发现往vutils.make_grid()里面传单通道的黑白图像时,它最后会变成三通道的图像
在这里插入图片描述

截取的代码是这样的,其中fake形状是64 * 1 * 64 * 64,是64个黑白图像的数据,而调试的时候往img_list加了一个元素后,元素形状是3 * 64 * 64

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
vutils.make_grid是PyTorch中的一个函数,用于将多个图像拼接成一个网格形式的图像展示。在使用时,需要将多个图像组织成一个张量(tensor),并指定每行中包含的图像数量、图像之间的间隔、是否要对图像进行标准化等参数。 具体来说,vutils.make_grid函数的参数包括: - tensor:需要展示的图像张量,一般为形状为(batch_size, channels, height, width)的四维张量。 - nrow:每行中包含的图像数量,默认值为8。 - padding:图像之间的间隔,默认值为2。 - normalize:是否对图像进行标准化,默认为False。 - range:如果对图像进行标准化,则指定标准化的范围,默认值为None,表示使用所有图像中的最小值和最大值。 - scale_each:如果对图像进行标准化,则指定是否对每个图像单独进行标准化,默认为False。 举个例子,如果我们有一个形状为(64, 3, 32, 32)的图像张量,其中64是batch_size,3是通道数(RGB三个通道),32×32是图像的高度和宽度,我们可以使用以下代码将它们拼接成一个8行8列的网格图像展示出来: ``` import torch import torchvision.utils as vutils # 构造64张32x32的彩色图像 batch_size, channels, height, width = 64, 3, 32, 32 tensor = torch.randn(batch_size, channels, height, width) # 将图像拼接成一个网格展示 grid_image = vutils.make_grid(tensor, nrow=8, padding=2, normalize=True, scale_each=True) # 显示网格图像 import matplotlib.pyplot as plt plt.imshow(grid_image.permute(1, 2, 0)) plt.axis('off') plt.show() ``` 运行代码后,可以看到生成的网格图像展示了64张随机生成的32×32的彩色图像,每行8张,相邻图像之间有2像素的间隔,并且对每张图像进行了标准化处理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值