pytorch 畫loss曲線_Pytorch使用tensorboardX可視化。超詳細!!!

1 引言

我們都知道tensorflow框架可以使用tensorboard這一高級的可視化的工具,為了使用tensorboard這一套完美的可視化工具,未免可以將其應用到Pytorch中,用于Pytorch的可視化。

本文主要是針對該解決方案提供一些介紹。

TensorboardX支持scalar,?image,?figure,?histogram,?audio,?text,?graph,?onnx_graph,?embedding,?pr_curve?and?videosummaries等不同的可視化展示方式,具體介紹移步至項目Github 觀看詳情。

2 環境安裝

本教程代碼環境依賴:

python 3.6+

Pytorch 0.4.0+

tensorboardX:? ?pip install tensorboardX、pip install tensorflow

3 代碼教程

TensorboardX可以提供中很多的可視化方式,本文主要介紹scalar 和 graph,其他類型相似。

3.1 scalar教程

01_scalar_base.py 代碼

對上述代碼進行解釋,首先導入:from tensorboardXimport SummaryWriter,然后定義一個SummaryWriter() 實例。在SummaryWriter()上鼠標ctrl+b我們可以看到SummaryWriter()的參數為:def __init__(self, log_dir=None, comment='', **kwargs): 其中log_dir為生成的文件所放的目錄,comment為文件名稱。默認目錄為生成runs文件夾目錄。我們運行上述代碼:生成結果為:

當我們為SummaryWriter(comment='base_scalar')。生成結果為:

當我們為SummaryWriter(log_dir='scalar') 添加log_dir參數,可以看到第二條數據的文件名稱包括了base_scalar值。生成結果目錄為:

接著解釋writer.add_scalar('scalar/test', np.random.rand(), epoch),這句代碼的作用就是,將我們所需要的數據保存在文件里面供可視化使用。 這里是Scalar類型,所以使用writer.add_scalar(),其他的隊形使用對應的函數。第一個參數可以簡單理解為保存圖的名稱,第二個參數是可以理解為Y軸數據,第三個參數可以理解為X軸數據。當Y軸數據不止一個時,可以使用writer.add_scalars().運行代碼之后生成文件之后,我們在runs同級目錄下使用命令行:tensorboard --logdir runs. 當SummaryWriter(log_dir='scalar')的log_dir的參數值 存在時,將tensorboard --logdir runs 改為 tensorboard --logdir 參數值

最后調用writer.close()。

點擊鏈接即可看到我們的最終需要的可視化結果。

可視化效果

可以分別點擊對應的圖片查看詳情。可以看到生成的Scalar名稱為'scalar/test'與'scalar/test'一致。注:可以使用左下角的文件選擇你想顯示的某個或者全部圖片。

3.2 Graph教程

02_graph_model.py 代碼

首先我們定義一個神經網絡取名為Net1。然后將其添加到tensorboard可是可視化中。

with SummaryWriter(comment='Net1')as w:

w.add_graph(model, (dummy_input,))

我們重點關注最后兩句話,其中使用了python的上下文管理,with 語句,可以避免因w.close未寫造成的問題。推薦使用此方式。

因為這是一個神經網絡架構,所以使用?w.add_graph(model, (dummy_input,)),其中第一個參數為需要保存的模型,第二個參數為輸入值,元祖類型。打開tensorvboard控制臺,可得到如下結果。

點擊Net1部分可以將其網絡展開,查看網絡內部構造。

模型可視化結果

其他部分可以繼續一次展開查看詳情。

3.3 網絡訓練綜合教程

解釋完上述兩部分知識之后,我們可以綜合運用上述兩部分內容,實現線性擬合的訓練過程中的loss可視化和模型的保存。

03_linear_regression.py 代碼

我們將運行過程中loss和model分別保存,最后打開tensorboard控制臺,可以得到模型結果和loss的結果為下圖.

模型可視化結果

注:不同的graph的可視化可以使用上圖Run旁邊的下拉框選擇。

loss可視化結果

3.4 Tensorboard綜合Demo

本Demo代碼為TensorboardX提供的官方Demo代碼。

demo.py

最終運行的所有可視化結果為:

最終可視化結果

4 結束語

本文是我寫的第一篇比較完整的文章,大家如果覺得幫助到了你,幫忙點個贊唄。

若轉載,請標明出處,謝謝!!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/270921.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/270921.shtml
英文地址,請注明出處:http://en.pswp.cn/news/270921.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

電腦技巧:電腦鍵盤F1~F12按鍵的妙用

目錄 F1:幫助鍵 F3:搜索按鍵 F4:打開瀏覽器歷史列表 F5:刷新功能 F6:定位地址欄 F7:在“命令提示符”中調用歷史指令 F8:啟動系統高級菜單 F9:無 F10:需要與Shift組合使用&#xff0…

linux vim基本操作,vim基本操作筆記

在Linux系統中有多種代碼編輯器,例如vim, gedit, emacs。這這些編輯器各有所長,就我個人而言,對于比較短的代碼,一般可以用vim解決就不用其它的工具,而長代碼的情況下更喜歡用gedit,這個gnome自帶的代碼編輯…

iOS 獲取當前對象所在的VC

id next [self nextResponder] ;while (next ! nil) {next [next nextResponder];if ([next isKindOfClass:[XX_ViewController class]]) {//return;}}轉載于:https://www.cnblogs.com/mapanguan/p/5853986.html

eureka 其它語言_SpringCloud之Eureka-Go語言中文社區

一、使用方法:1、添加maven依賴org.springframework.cloudspring-cloud-starter-netflix-eureka-server版本一般交由spring-cloud-dependencies管理。注意這個依賴的artifactId在Edgware以前是spring-cloud-starter-eureka-server,而在之后變成了spring-cloud-start…

操作系統:Win10系統下LocalNow和Roaming文件夾介紹

Win10操作系統下AppData文件夾包括以下子文件夾 - 漫游,本地和本地。 幾乎每個在Win10 PC上安裝的程序都會在AppData文件夾中創建自己的文件夾,并將其所有相關信息存儲在其中。AppData或應用程序數據是Windows 10中的一個隱藏文件夾,可幫助保…

c語言des算法實驗報告,C語言實現DES算法實驗報告解析.doc

C語言實現DES算法實驗報告解析xx工程大學實驗報告(2015-2016學年第一學期)報告題目: DES加密算法課程名稱: 密碼學B任課教員:專 業:學 號:姓 名:二O一六年一月十八日一、課程概述目的:培養學員的…

[noip2010]關押罪犯 并查集

第一次看的時候想到了并查集&#xff0c;但是不知道怎么實現&#xff1b; 標解&#xff0c;f[i]表示i所屬的集合&#xff0c;用f[in]表示i所屬集合的補集&#xff0c;實現的很巧妙&#xff0c;可以當成一個使用并查集的巧妙應用&#xff1b; 1 #include<iostream>2 #incl…

jvm什么是本地方法

一&#xff1a;什么是本地方法 二&#xff1a;舉例 三&#xff1a;為什么要使用Native Method

SQLServer:用戶自定義數據類型用法

今天給大家梳理一下SQLServer:用戶自定義數據類型用法&#xff0c;希望對大家能有所幫助&#xff01;1、基于基本數據類型創建的別名數據類型-- 創建生日的數據類型 CREATE TYPE birthday FROM datetime NULL; -- 創建用戶表 CREATE TABLE userInfo (id varchar(32), userNam…

python fsolve說明_Python fsolve()抱怨形狀.為什么?

具有函數f(x,y,z),我需要解決限制f(x,y,z) 0然后繪制它.我試圖為每對(y,z)找到f(x,y,z) 0的值x&#xff1a;from numpy import *from scipy.optimize import fsolvedef func(x,y,z):return xyzy linspace(0,1,100)z linspace(0,1,100)x0 zeros((y.size,z.size)) 0.5 # the …

C語言實現與功能的程序,用C語言實現Ping程序功能

2001 年 10 月 01 日大部分人用ping命令只是作為查看另一個系統的網絡連接是否正常的一種簡單方法。在這篇文章中&#xff0c;作者將介紹如何用C語言編寫一個模擬ping命令功能的程序。ping命令是用來查看網絡上另一個主機系統的網絡連接是否正常的一個工具。ping命令的工作原理…

數據庫知識:SQLServer變量相關知識介紹

今天給大家分享SQLServer變量相關介紹&#xff0c;希望對大家能有所幫助&#xff01;1、概述SQLServer變量對應內存中的一個存儲空間。它和常量不同&#xff0c;變量的值可以在執行過程中改變。2、分類SQLServer變量根據作用范圍不同主要分為局部變量和全局變量。2.1.局部變量局…

oauth基本流程和原理

組裝loginurl-》去第三方登錄驗證-》回調callbackurlcode&#xff08;票據&#xff09;-》本地根據codeappidappkey組裝url隱式curl獲取用戶信息-》完成登錄。 之所以要用callbackurl的形式是因為不能讓用戶在你本地輸入賬號密碼防止被盜號。 之所以不在callbackurl的時候&…

halcon輪廓擦除_halcon第十二講,毛刺去除

在視覺測量中我們很會被毛刺問題困擾&#xff0c;產生干擾的因素很多&#xff0c;有打光問題和產品本生帶毛刺&#xff0c;接下來給兄弟們帶來兩種去毛刺的方法。第一種read_image (Image1323153Ba0b96cf52f88f1, 1)rgb1_to_gray (Image1323153Ba0b96cf52f88f1, GrayImage)lapl…

c語言雙循環計算n的階乘,用C語言用循環實現N的階乘

匿名用戶1級2014-03-04 回答不要用數組&#xff0c;用vector來實現相應的功能&#xff0c;我給你寫個大概的框架&#xff0c;你向里面添加就好了1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#include #include #include …

存儲知識:U盤的實際容量要比標注容量小,你知道原因嗎?

用過U盤的朋友一定都會知道&#xff0c;U盤的實際容量往往是達不到它標注的容量。比如一個16G的U盤&#xff0c;其實際容量一般只有14.7G左右。今天本文會給大家解釋其中的原因。 原因一&#xff1a;計算容量方法不同 存儲設備制造商為了計算方便&#xff0c;采用十進制計算方法…

CentOS 7 防止端口自動關閉

tl;dr firewall-cmd --permanent --zonepublic --add-port2888/tcp firewall-cmd --reload #重新載入服務 永久配置firewalld開啟端口。 之前的一些坑 之前的一篇文章CentOS 7部署Node.jsMongoDB&#xff1a;在VPS上從安裝到Hello world中&#xff0c;講到了CentOS開啟端口用這…

jio文件 久其_功能強大的Windows文件管理器工具

Windows文件管理功能體驗只能說中規中矩&#xff0c;批量處理文件時非常的慢&#xff0c;而且在模糊搜索文件時的速度以及資源占用實在是感人&#xff0c;再加上功能較少&#xff0c;只能實現重命名、復制、粘貼、剪切這些基礎功能&#xff0c;因此想要提高文件之間處理效果通常…