Pytorch中的Tensorboard常用API

SummaryWriter函數

  • 這個函數用于創建一個tensorboard文件,其中常用參數有

    • log_dir:tensorboard文件的存放路徑。不設置log_dir默認會在當前程序所在的文件夾下創建個runs文件夾存儲
    • flush_secs:表示寫入tensorboard文件的時間間隔
    • comment:文件夾名稱的后綴
    • filename_suffix:文件名字后綴

add_scalar函數

  • 功能:記錄標量的變化常用于Loss和Accuarcy曲線的記錄
add_scalar(tag, scalar_value, global_step=None,walltime=None)
tag ( string ) – 數據標識符
scalar_value ( float或string/blobname ) – 要保存的值:相當于是x的值
global_step ( int ) – 要記錄的全局步長值:相當于是y的值
walltime ( float ) – 記錄訓練的時間,默認 walltime (time.time()) 秒
new_style ( boolean ) – 是使用新樣式(張量字段)還是舊樣式(simple_value 字段)。新樣式可能會導致更快的數據加載。
  • 示例代碼
    writer = SummaryWriter(comment='_scalars', filename_suffix="12345678")for x in range(100):writer.add_scalar('y=pow_2_x', 2 ** x, x)writer.close()

add_scalars函數

  • 功能:記錄標量的變化,常用于對比
add_scalars(main_tag, tag_scalar_dict,global_step=None, walltime=None)
main_tag ( string ) – 標簽的父名稱
tag_scalar_dict ( dict ) – 存儲標簽和對應值的鍵值對:相當于y的值。
global_step ( int ) – 要記錄的全局步長值:相當于x的值
walltime ( float ) – 記錄訓練的時間,默認 walltime (time.time()) 秒
  • 示例代碼
    max_epoch = 100writer = SummaryWriter(comment='test_comment', filename_suffix="test_suffix")for x in range(max_epoch):writer.add_scalar('y=2x', x * 2, x)writer.add_scalar('y=pow_2_x', 2 ** x, x)writer.add_scalars('data/scalar_group', {"xsinx": x * np.sin(x),"xcosx": x * np.cos(x)}, x)writer.close()

add_histogram函數

  • 功能:統計直方圖與多分位數折線圖
add_histogram(tag, values, global_step=None,bins='tensorflow', walltime=None)
? tag:圖像的標簽名,圖的唯一標識
? values:要統計的參數
? global_step:y軸
? bins:取直方圖的bins 
  • 示例代碼
 writer = SummaryWriter("histogram_logs")for i in range(10):x = np.random.random(1000)writer.add_histogram('distribution centers', x + i, i)writer.close()

add_image函數

  • 功能:記錄圖像
add_image(tag, img_tensor, global_step=None,walltime=None, dataformats='CHW')
? tag:圖像的標簽名,圖的唯一標識
? img_tensor:圖像數據,注意尺度
? global_step:x軸
? dataformats:數據形式,CHW,HWC,HW
  • 示例代碼
  writer = SummaryWriter(comment='test_your_comment', filename_suffix="_test_your_filename_suffix")fake_img = torch.randn(3, 512, 512)writer.add_image("fake_img", fake_img, 1)

torchvision.utils.make_grid函數

  • 功能:制作網格圖像
make_grid(tensor, nrow=8, padding=2,normalize=False, range=None, scale_each=False,pad_value=0)
? tensor:圖像數據, B*C*H*W形式
? nrow:行數(列數自動計算)
? padding:圖像間距(像素單位)
? normalize:是否將像素值標準化
? range:標準化范圍
? scale_each:是否單張圖維度標準化
? pad_value:padding的像素值
  • 示例代碼
    writer = SummaryWriter(comment='test_your_comment', filename_suffix="_test_your_filename_suffix")split_dir = os.path.join("..", "..", "data", "rmb_split")train_dir = os.path.join(split_dir, "train")transform_compose = transforms.Compose([transforms.Resize((32, 64)), transforms.ToTensor()])train_data = RMBDataset(data_dir=train_dir, transform=transform_compose)train_loader = DataLoader(dataset=train_data, batch_size=16, shuffle=True)data_batch, label_batch = next(iter(train_loader))img_grid = vutils.make_grid(data_batch, nrow=4, normalize=True, scale_each=True)# img_grid = vutils.make_grid(data_batch, nrow=4, normalize=False, scale_each=False)writer.add_image("input img", img_grid, 0)

add_graph函數

  • 功能:可視化模型計算圖
add_graph(model, input_to_model=None, verbose=False)
? model:模型,必須是 nn.Module
? input_to_model:輸出給模型的數據
? verbose:是否打印計算圖結構信息  model( torch.nn.Module ) – 要繪制的模型。
input_to_model ( torch.Tensor or list of torch.Tensor ) – 要輸入的變量或變量元組
verbose(bool)– 是否在控制臺中打印圖形結構。
use_strict_trace ( bool ) – 是否將關鍵字參數嚴格傳遞給 torch.jit.trace。當您希望跟蹤器記錄您的可變容器類型(列表、字典)時傳遞 False.
  • 示例代碼
    writer = SummaryWriter(comment='test_your_comment', filename_suffix="_test_your_filename_suffix")# 模型fake_img = torch.randn(1, 3, 32, 32)lenet = LeNet(classes=2)writer.add_graph(lenet, fake_img)

torch.summary函數

  • 功能:查看模型信息,便于調試
summary(model, input_size, batch_size=-1,device="cuda")
? model:pytorch模型
? input_size:模型輸入size
? batch_size:batch size
? device:“cuda” or “cpu”
  • 示例代碼
summary(lenet, (3, 32, 32), device="cpu")

參考鏈接

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

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

相關文章

一文2000字使用JMeter進行接口測試教程!(建議收藏)

安裝 使用JMeter的前提需要安裝JDK,需要JDK1.7以上版本目前在用的是JMeter5.2版本,大家可自行下載解壓使用 運行 進入解壓路徑如E: \apache-jmeter-5.2\bin,雙擊jmeter.bat啟動運行 啟動后默認為英文版本,可通過Options – Cho…

IIC驅動OLED HAL庫+CubeMX

一.IIC傳輸數據的格式 1.寫操作 2.讀操作 3.IIC信號 二. IIC底層驅動 #define SCL_PIN GPIO_PIN_6 #define SDA_PIN GPIO_PIN_7#define SCL_PORT GPIOB #define SDA_PORT GPIOB/********************** 函數宏定義 **********************/ #d…

Navicat 技術指引 | 連接 GaussDB 主備版

Navicat Premium(16.2.8 Windows版或以上) 已支持對GaussDB 主備版的管理和開發功能。它不僅具備輕松、便捷的可視化數據查看和編輯功能,還提供強大的高階功能(如模型、結構同步、協同合作、數據遷移等),這…

LangChain(0.0.339)官方文檔一:快速入門

LangChain官網、LangChain官方文檔 、langchain Github、langchain API文檔、llm-universe 文章目錄 一、LangChain簡介(v0.0.338)1.1 整體框架1.2 主要組件1.2.1 Model I/O1.2.2 Retrieval1.2.2.1 RAG1.2.2.2 Retrieval 1.2.3 Chain 1.3 其它組件1.3.1 …

STM32筆記---RTC

目錄 一、RTC簡介 二、主要特性 三、功能描述 3.1 讀RTC寄存器 3.2 配置RTC寄存器 四、BKP簡介 五、RTC_Init() 1. 函數BKP_ReadBackupRegister 2.RCC_LSEConfig設置外部低速晶振(LSE) 3.RTC基本結構 5.RTC_Init()實現 6.time.h 一、R…

九州未來聯合聯通智網科技發布白皮書,促進車聯網融合發展

2023年11月21日,由2023中國5G工業互聯網大會組委會、工業和信息化部主辦,聯通智網科技承辦的2023中國5G工業互聯網大會——5G車聯網與智慧交通創新發展平行會議,在武漢成功舉辦。 九州未來作為中國聯通車聯網創新聯合體成員單位,受…

【Sql】sql server還原數據庫的時候,提示:因為數據庫正在使用,所以無法獲得對數據庫的獨占訪問權。

【問題描述】 sql server 還數據庫的時候,提示失敗。 點擊左下角進度位置,可以得到詳細信息: 因為數據庫正在使用,所以無法獲得對數據庫的獨占訪問權。 【解決方法】 針對數據庫先后執行下述語句,獲得獨占訪問權后&a…

【Leetcode合集】2824. 統計和小于目標的下標對數目

2824. 統計和小于目標的下標對數目 2824. 統計和小于目標的下標對數目 代碼倉庫地址: https://github.com/slience-me/Leetcode 個人博客 :https://slienceme.xyz 給你一個下標從 0 開始長度為 n 的整數數組 nums 和一個整數 target ,請你…

線性空間(也叫向量空間)、線性運算

線性空間、線性運算 線性空間,也稱向量空間。 假設是一個非空集合,是一個實數域。 在中定義了一個加法:即對中任何兩個元素和,總有中另外一個元素與它們相對應,稱為和的和,記作: 在定義了一個…

mac電腦系統活動監控:iStat Menus 中文 for Mac

iStat Menus是一款Mac操作系統上的系統監控工具,它提供了實時的系統狀態和性能數據,讓用戶可以方便地監控和管理自己的電腦。iStat Menus以菜單欄圖標的形式顯示各種系統指標,用戶可以輕松訪問和查看這些信息。 以下是iStat Menus軟件的一些…

debian 設置系統默認以命令行方式啟動,關閉x windows

debian 設置系統默認以命令行方式啟動,關閉x windows 2021-01-02 tech linux 設置 grub啟動設置在/etc/default/grub中,打開 default grub 配置: $ sudo vim /etc/default/grub修改以下配置: 更新grub,設置多用戶啟動: …

針對MySql知識的回顧

MySql雖然是一個相對簡單的關系型數據庫,但也是一個最常用的數據庫,也是一個非常經典的數據庫,很多云產品也是基于MySql做了二開,從而變得非常強大,其中MySql最常用的是Innodb引擎,因為該引擎支持事務&…

第14章 多線程三 (線程同步)

目錄 內容說明 章節內容 1、為什么需要多線程同步? 2、Java如何實現多線程同步?

CUDA學習筆記9——CUDA 共享內存 / Shared Memory

由于共享內存擁有僅次于寄存器的讀寫速度,比全局內存快得多。因此,能夠用共享內存訪問替換全局內存訪問的場景都可以考慮做對應的優化。 不利用共享內存的矩陣乘法 不利用共享內存的矩陣乘法的直接實現。每個線程讀取A的一行和B的一列,并計…

『Linux升級路』基礎開發工具——gcc/g++篇

🔥博客主頁:小王又困了 📚系列專欄:Linux 🌟人之為學,不日近則日退 ??感謝大家點贊👍收藏?評論?? 目錄 一、快速認識gcc/g 二、預處理 📒1.1頭文件展開 📒1…

java字符串的常見用法

java字符串的常見用法 Java中的字符串是一個非常常用的對象,它屬于Java的內置類String類的實例。字符串在Java中是不可變的,即一旦創建了一個字符串對象,就不能修改它的值。 下面是一些關于Java字符串的詳細用法: 1)創…

從零開始,用Docker-compose打造SkyWalking、Elasticsearch和Spring Cloud的完美融合

🎏:你只管努力,剩下的交給時間 🏠 :小破站 "從零開始,用Docker-compose打造SkyWalking、Elasticsearch和Spring Cloud的完美融合 前言準備工作編寫docker-compose.yml文件為什么使用本機ip為什么skywa…

代碼隨想錄-刷題第六天

242. 有效的字母異位詞 題目鏈接:242. 有效的字母異位詞 思路:哈希法。利用數組來記錄出現的字母個數,然后判斷是否為字母異位詞。 時間復雜度:O(n) class Solution {public boolean isAnagram(String s, String t) {int[] co…

【云備份】第三方庫的認識與使用

文章目錄 json庫粗略認識詳細認識writer 類reader類jsoncpp序列化實現jsoncpp反序列化實現 bundle文件壓縮庫簡單認識bundle庫實現文件壓縮bundle庫實現文件解壓縮 httplib庫Request類Response類Server類Client類 json庫 粗略認識 json是一種數據交換格式,采用完全…

激光切割設備中模組的作用有哪些?

激光切割設備是一種高精度的自動化加工設備,用于對金屬、非金屬等材料進行精確切割。直線模組作為激光切割設備的重要組成部分,在激光切割設備中起著重要的作用,為設備的運動系統提供了高精度、高穩定性和高效率的運動控制。 1、高精度的位置…