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)
大功告成,可以看看保存后的图片
已经都整整齐齐的在我的保存路径下了。
来源:https://blog.csdn.net/xzm961226xzm/article/details/120951317
标签:plt.savefig,保存,路径
0
投稿
猜你喜欢
浅谈numpy广播机制
2023-08-25 22:07:51
python批量生成身份证号到Excel的两种方法实例
2022-05-16 14:25:43
Python实现大数据收集至excel的思路详解
2022-02-03 10:25:25
Django模型验证器介绍与源码分析
2023-10-19 13:49:53
详解Python装饰器之@property
2021-06-25 15:55:45
Python打印斐波拉契数列实例
2022-11-03 11:40:41
Django缓存系统实现过程解析
2021-07-22 23:18:09
Python3.6 Schedule模块定时任务(实例讲解)
2022-08-14 15:55:00
ajax完美实现两个网页 分页功能的实例代码
2023-11-14 12:57:27
dl.dt.dd.ul.li.ol区别及应用
2008-05-24 09:42:00
使用PyWeChatSpy自动回复微信拍一拍功能的实现代码
2021-08-28 21:15:07
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
2023-11-22 06:03:23
随机显示图片
2009-07-26 10:13:00
Python datatime库语法使用详解
2022-01-30 03:16:17
如何判断用户在某一页面逗留了多长时间?
2010-01-18 20:48:00
python查找与排序算法详解(示图+代码)
2023-08-05 13:27:26
ASp使用AspJpeg组件制作透明文字水印
2008-01-15 20:25:00
Python制作一个多功能音乐播放器
2022-06-15 10:16:05
Python 中的参数传递、返回值、浅拷贝、深拷贝
2022-10-12 12:59:16
Python 将json序列化后的字符串转换成字典(推荐)
2021-11-17 12:36:51