torchvision.utils
torchvision.utils.make_grid(tensor, nrow=8, padding=2, normalize=False, range=None, scale_each=False)
猜测,用来做 雪碧图的(sprite image)。
给定 4D mini-batch Tensor, 形状为 (B x C x H x W),或者一个a list of image Tensor,做成一个size为(B / nrow, nrow)的雪碧图。
-
normalize=True ,会将图片的像素值归一化处理
-
如果 range=(min, max), min和max是数字,那么
min,max用来规范化image -
scale_each=True ,每个图片独立规范化,而不是根据所有图片的像素最大最小值来规范化
-
padding: 小图之间的间隔
NOTE:
如果使用的是python3x,如果下面代码跑不起来的话,就把报错地方的源码 long改成int。
还有一个需要注意的是:Channel不能为4,是4的话会报错,3可以正常运行。
例子:
import torchvision.transforms as transforms
from torchvision.utils import make_grid
import matplotlib.pyplot as plt
import numpy as np
import scipy.misc
def show(img):
npimg = img.numpy()
plt.imshow(np.transpose(npimg, (1,2,0)), interpolation='nearest')
lena = scipy.misc.face()
img = transforms.ToTensor()(lena)
print(img.size())
imglist = [img, img, img, img.clone().fill_(-10)]
show(make_grid(imglist, nrow=2, padding=5))
plt.show()
Example usage is given in this notebook
torchvision.utils.save_image(tensor, filename, nrow=8, padding=2, normalize=False, range=None, scale_each=False)
将给定的Tensor保存成image文件。如果给定的是mini-batch tensor,那就用make-grid做成雪碧图,再保存。