如何使用PIL将四维张量转换为图像?

huangapple go评论97阅读模式
英文:

How to convert a four dimensional Tensor to image by PIL?

问题

例如,如果我的张量是:

  1. t1 = torch.randn(1, 3, 256, 256) # batch_size/ch/height/width

可以使用 squeeze() 轻松将其转换为一张图像:

  1. import torchvision.transforms as T
  2. transform = T.ToPILImage()
  3. one_img = transform(t1.squeeze())
  4. one_img.save("test1.jpg")

问题是,如果批处理大小大于一,我想知道是否有类似于以下的PyTorch函数:

  1. t1 = torch.randn(5, 3, 256, 256)
  2. print(t1.shape)
  3. for i in range(t1.size(0)):
  4. one_tensor = t1[i] #(3, 256, 256)
  5. one_img = transform(one_tensor)
  6. one_img.save(str(i) + ".jpg")
英文:

For example, if my tensor is

  1. t1 = torch.randn(1,3,256,256) #batch_size/ch/height/width

it is easily to convert to one image by squeeze()

  1. import torchvision.transforms as T
  2. transform = T.ToPILImage()
  3. one_img = transform(t1.squeeze())
  4. one_img.save("test1.jpg")

The problem is if batch_size is is more than one, I was wondering if there is for function in pytorch like,

  1. t1 = torch.randn(5,3,256,256)
  2. print(t1.shape)
  3. for i in range(t1[0]):
  4. one_tensor = t1[i] #(3,256,256)
  5. one_img = transform(one_tensor)
  6. one_img.save(i + ".jpg")

答案1

得分: 0

只需执行以下操作:

  1. for i in range(len(t1)):
  2. one_tensor = t1[i]
  3. one_img = transform(one_tensor)
  4. one_img.save(str(i) + ".jpg")
英文:

Just do this:

  1. for i in range(len(t1)):
  2. one_tensor = t1[i]
  3. one_img = transform(one_tensor)
  4. one_img.save(str(i) + ".jpg")

huangapple
  • 本文由 发表于 2023年4月11日 10:44:53
  • 转载请务必保留本文链接:https://go.coder-hub.com/75982049.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定