pytorch?plt.savefig()的用法及保存路徑
圖像有時(shí)候比數(shù)據(jù)更能滿(mǎn)足人們的視覺(jué)需求
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)
# 復(fù)制一份
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轉(zhuǎn)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)
# 復(fù)制一份
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]轉(zhuǎn)化為[0,255],再?gòu)腃HW轉(zhuǎn)為HWC,最后轉(zhuǎn)為cv2
input_tensor = input_tensor.mul_(255).add_(0.5).clamp_(0, 255).permute(1, 2, 0).type(torch.uint8).numpy()
# RGB轉(zhuǎn)BRG
input_tensor = cv2.cvtColor(input_tensor, cv2.COLOR_RGB2BGR)
cv2.imwrite(filename, input_tensor)
3、tensor轉(zhuǎn)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)
# 復(fù)制一份
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]轉(zhuǎn)化為[0,255],再?gòu)腃HW轉(zhuǎn)為HWC,最后轉(zhuǎn)為numpy
input_tensor = input_tensor.mul_(255).add_(0.5).clamp_(0, 255).permute(1, 2, 0).type(torch.uint8).numpy()
# 轉(zhuǎn)成pillow
im = Image.fromarray(input_tensor)
im.save(filename)
主要是寫(xiě)一些函數(shù)來(lái)保存圖片;
另外,pytorch中有很多可以直接保存圖片的語(yǔ)句
如
save_image(fake_images, './img/fake_images-{}.png'.format(epoch + 1))
此語(yǔ)句同樣需要轉(zhuǎn)化像素。
那么如果
我只需要打開(kāi)一個(gè)視窗,觀察訓(xùn)練過(guò)程中圖像的變化,我對(duì)圖像像素保存沒(méi)有什么需求,只是保存一個(gè)視窗,那么我需要的保存圖像的函數(shù)僅僅是一個(gè)
plt.savefig
plt.savefig的用法以及保存的路徑,及訓(xùn)練過(guò)程中不會(huì)被覆蓋掉,可以上代碼供大家參考
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)
大功告成,可以看看保存后的圖片

已經(jīng)都整整齊齊的在我的保存路徑下了。
總結(jié)
到此這篇關(guān)于pytorch plt.savefig()用法及保存路徑的文章就介紹到這了,更多相關(guān)plt.savefig()用法及路徑內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python+OpenCV數(shù)字圖像處理之ROI區(qū)域的提取
ROI區(qū)域又叫感興趣區(qū)域。在機(jī)器視覺(jué)、圖像處理中,從被處理的圖像以方框、圓、橢圓、不規(guī)則多邊形等方式勾勒出需要處理的區(qū)域,稱(chēng)為感興趣區(qū)域,ROI。本文主要為大家介紹如何通過(guò)Python+OpenCV提取ROI區(qū)域,需要的朋友可以了解一下2021-12-12
Python使用pandas模塊實(shí)現(xiàn)表之間的關(guān)聯(lián)
在數(shù)據(jù)分析和處理中,表之間的關(guān)聯(lián)是非常常見(jiàn)的操作,本文為大家介紹了pandas中實(shí)現(xiàn)表之間的關(guān)聯(lián)有四種方式,感興趣的小伙伴可以了解一下2023-07-07
python數(shù)據(jù)類(lèi)型_元組、字典常用操作方法(介紹)
下面小編就為大家?guī)?lái)一篇python數(shù)據(jù)類(lèi)型_元組、字典常用操作方法(介紹)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
這篇文章主要介紹了在Mac OS上部署Nginx和FastCGI以及Flask框架的教程,Flask是Python下一個(gè)極簡(jiǎn)的web開(kāi)放框架,需要的朋友可以參考下2015-05-05
Python?Pygame實(shí)戰(zhàn)之歡樂(lè)打地鼠游戲
打地鼠是一款比較經(jīng)典的敏捷類(lèi)游戲,我們可以在許多商場(chǎng)門(mén)口看到這類(lèi)游戲機(jī),在電腦和手機(jī)上也有許多類(lèi)似的游戲。本文將用Python中的Pygame庫(kù)實(shí)現(xiàn)這一游戲,需要的可以參考一下2022-02-02
python教程之用py2exe將PY文件轉(zhuǎn)成EXE文件
py2exe是一個(gè)將python腳本轉(zhuǎn)換成windows上的可獨(dú)立執(zhí)行的可執(zhí)行程序(*.exe)的工具,這樣,你就可以不用裝python而在windows系統(tǒng)上運(yùn)行這個(gè)可執(zhí)行程序。2014-06-06
實(shí)例講解Python設(shè)計(jì)模式編程之工廠方法模式的使用
這篇文章主要介紹了Python設(shè)計(jì)模式編程之工廠方法模式的運(yùn)用實(shí)例,文中也對(duì)Factory Method模式中涉及到的角色作出了解析,需要的朋友可以參考下2016-03-03

