pytorch plt.savefig()的用法及保存路径

作者:因为简单,所以快乐 时间:2021-04-28 12:55:44 

图像有时候比数据更能满足人们的视觉需求

Pytorch中保存图片的方式

pytorch下保存图像有很多种方法,但是这些基本上都是基于图像处理的,将图像的像素指定一定的维度 ,方法如下:

1、tensor直接保存

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
import torch
from torchvision import utils as vutils

def save_image_tensor(input_tensor: torch.Tensor, filename):
   """
   将tensor保存为图片
   :param input_tensor: 要保存的tensor
   :param filename: 保存的文件名
   """
   assert (len(input_tensor.shape) == 4 and input_tensor.shape[0] == 1)
   # 复制一份
   input_tensor = input_tensor.clone().detach()
   # 到cpu
   input_tensor = input_tensor.to(torch.device('cpu'))
   # 反归一化
   # input_tensor = unnormalize(input_tensor)
   vutils.save_image(input_tensor, filename)

2、tensor转cv2保存

#!/usr/bin/env python
# _*_ coding:utf-8 _*_
import torch
import cv2

def save_image_tensor2cv2(input_tensor: torch.Tensor, filename):
   """
   将tensor保存为cv2格式
   :param input_tensor: 要保存的tensor
   :param filename: 保存的文件名
   """
   assert (len(input_tensor.shape) == 4 and input_tensor.shape[0] == 1)
   # 复制一份
   input_tensor = input_tensor.clone().detach()
   # 到cpu
   input_tensor = input_tensor.to(torch.device('cpu'))
   # 反归一化
   # input_tensor = unnormalize(input_tensor)
   # 去掉批次维度
   input_tensor = input_tensor.squeeze()
   # 从[0,1]转化为[0,255],再从CHW转为HWC,最后转为cv2
   input_tensor = input_tensor.mul_(255).add_(0.5).clamp_(0, 255).permute(1, 2, 0).type(torch.uint8).numpy()
   # RGB转BRG
   input_tensor = cv2.cvtColor(input_tensor, cv2.COLOR_RGB2BGR)
   cv2.imwrite(filename, input_tensor)

3、tensor转pillow保存

def save_image_tensor2pillow(input_tensor: torch.Tensor, filename):
   """
   将tensor保存为pillow
   :param input_tensor: 要保存的tensor
   :param filename: 保存的文件名
   """
   assert (len(input_tensor.shape) == 4 and input_tensor.shape[0] == 1)
   # 复制一份
   input_tensor = input_tensor.clone().detach()
   # 到cpu
   input_tensor = input_tensor.to(torch.device('cpu'))
   # 反归一化
   # input_tensor = unnormalize(input_tensor)
   # 去掉批次维度
   input_tensor = input_tensor.squeeze()
   # 从[0,1]转化为[0,255],再从CHW转为HWC,最后转为numpy
   input_tensor = input_tensor.mul_(255).add_(0.5).clamp_(0, 255).permute(1, 2, 0).type(torch.uint8).numpy()
   # 转成pillow
   im = Image.fromarray(input_tensor)
   im.save(filename)

 主要是写一些函数来保存图片;

另外,pytorch中有很多可以直接保存图片的语句

save_image(fake_images, './img/fake_images-{}.png'.format(epoch + 1))

此语句同样需要转化像素。

那么如果

我只需要打开一个视窗,观察训练过程中图像的变化,我对图像像素保存没有什么需求,只是保存一个视窗,那么我需要的保存图像的函数仅仅是一个

plt.savefig

plt.savefig的用法以及保存的路径,及训练过程中不会被覆盖掉,可以上代码供大家参考

if epoch % 10== 0:
           plt.title('ber:{:.3f},a: {:.3f},b:{:.3f},snr: {:.3f}'.format(
           error_rate, a, b,M
           ))
           plt.plot(r3)  # 绘制波形

# save_image(r3, './img/fake_images-{}.png'.format(epoch + 1))
           # print(type(r3))
           # plt.draw()
           plt.draw()
           plt.savefig('./img/pic-{}.png'.format(epoch + 1))
           plt.pause(1)

plt.close(fig1)

大功告成,可以看看保存后的图片

pytorch plt.savefig()的用法及保存路径

 已经都整整齐齐的在我的保存路径下了。

来源:https://blog.csdn.net/xzm961226xzm/article/details/120951317

标签:plt.savefig,保存,路径
0
投稿

猜你喜欢

  • Mysql5.7修改root密码教程

    2024-01-29 02:20:19
  • vue2.0 循环遍历加载不同图片的方法

    2024-05-08 10:24:50
  • 如何让thinkphp在模型中自动完成session赋值小教程

    2024-05-03 15:51:25
  • Python实现pdf文档转txt的方法示例

    2021-12-08 19:16:16
  • Python摸鱼神器之利用树莓派opencv人脸识别自动控制电脑显示桌面

    2021-01-12 07:31:45
  • Oracle Index 的三个问题

    2024-01-14 20:20:40
  • Django之模板层的实现代码

    2022-11-10 11:40:54
  • 浅谈Mysql tinyint(1)与tinyint(4)的区别

    2024-01-14 10:10:39
  • Python实现aes加密解密多种方法解析

    2021-05-13 01:36:53
  • python实现图像最近邻插值

    2023-02-01 00:03:34
  • ThinkPHP php 框架学习笔记

    2023-09-10 08:20:32
  • python爬虫 模拟登录人人网过程解析

    2023-06-18 18:42:19
  • python基础之贪婪模式与非贪婪模式

    2023-01-18 04:14:36
  • python读取几个G的csv文件方法

    2023-06-04 08:01:27
  • python Pandas 读取txt表格的实例

    2023-12-05 01:23:48
  • 如何用MySQL-Front远程连接MySql?

    2010-12-03 16:02:00
  • Python为人脸照片添加口罩实战

    2021-11-12 23:39:33
  • 深刻理解Oracle数据库的启动和关闭

    2010-07-26 13:08:00
  • Python深度优先算法生成迷宫

    2023-05-13 08:38:09
  • 详解用selenium来下载小姐姐图片并保存

    2023-08-11 02:02:31
  • asp之家 网络编程 m.aspxhome.com