pytorch?plt.savefig()的用法及保存路徑
圖像有時候比數(shù)據(jù)更能滿足人們的視覺需求
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],再從CHW轉(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],再從CHW轉(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)
主要是寫一些函數(shù)來保存圖片;
另外,pytorch中有很多可以直接保存圖片的語句
如
save_image(fake_images, './img/fake_images-{}.png'.format(epoch + 1))
此語句同樣需要轉(zhuǎn)化像素。
那么如果
我只需要打開一個視窗,觀察訓(xùn)練過程中圖像的變化,我對圖像像素保存沒有什么需求,只是保存一個視窗,那么我需要的保存圖像的函數(shù)僅僅是一個
plt.savefig
plt.savefig的用法以及保存的路徑,及訓(xùn)練過程中不會被覆蓋掉,可以上代碼供大家參考
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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python+OpenCV數(shù)字圖像處理之ROI區(qū)域的提取
ROI區(qū)域又叫感興趣區(qū)域。在機器視覺、圖像處理中,從被處理的圖像以方框、圓、橢圓、不規(guī)則多邊形等方式勾勒出需要處理的區(qū)域,稱為感興趣區(qū)域,ROI。本文主要為大家介紹如何通過Python+OpenCV提取ROI區(qū)域,需要的朋友可以了解一下2021-12-12Python使用pandas模塊實現(xiàn)表之間的關(guān)聯(lián)
在數(shù)據(jù)分析和處理中,表之間的關(guān)聯(lián)是非常常見的操作,本文為大家介紹了pandas中實現(xiàn)表之間的關(guān)聯(lián)有四種方式,感興趣的小伙伴可以了解一下2023-07-07python數(shù)據(jù)類型_元組、字典常用操作方法(介紹)
下面小編就為大家?guī)硪黄猵ython數(shù)據(jù)類型_元組、字典常用操作方法(介紹)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
這篇文章主要介紹了在Mac OS上部署Nginx和FastCGI以及Flask框架的教程,Flask是Python下一個極簡的web開放框架,需要的朋友可以參考下2015-05-05python教程之用py2exe將PY文件轉(zhuǎn)成EXE文件
py2exe是一個將python腳本轉(zhuǎn)換成windows上的可獨立執(zhí)行的可執(zhí)行程序(*.exe)的工具,這樣,你就可以不用裝python而在windows系統(tǒng)上運行這個可執(zhí)行程序。2014-06-06實例講解Python設(shè)計模式編程之工廠方法模式的使用
這篇文章主要介紹了Python設(shè)計模式編程之工廠方法模式的運用實例,文中也對Factory Method模式中涉及到的角色作出了解析,需要的朋友可以參考下2016-03-03