TensorBoard ,PIL 和 OpenCV 在深度學習中的應用

重要工具介紹

TensorBoard:

是一個TensorFlow提供的強大工具,用于可視化和理解深度學習模型的訓練過程和結果。下面我將介紹TensorBoard的相關知識和使用方法。
TensorBoard 簡介
TensorBoard是TensorFlow提供的一個可視化工具,用于:

1.可視化模型的圖形結構(Graph Visualization)。
2.跟蹤和可視化指標(metrics)如損失和準確率隨時間的變化。
3.顯示圖像數據、音頻數據和其他數據類型。
4.查看訓練過程中生成的直方圖、分布和統計信息等。

安裝TensorBorad

or

pip install tensorboard

代碼示例:?

import torch
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter()
for i in range(100):writer.add_scalar("y=x**2",i**2,i)writer.close()

?

使用 TensorBoard

1. 設置 TensorBoard 回調


在TensorFlow中,你需要通過TensorBoard回調來記錄數據,以便后續在TensorBoard中查看。通常在訓練模型時設置TensorBoard回調。

示例代碼如下:

import tensorflow as tf
from tensorflow.keras.callbacks import TensorBoard# 創建一個TensorBoard回調,指定日志存儲的目錄
tensorboard_callback = TensorBoard(log_dir="./logs")# 使用回調來訓練你的模型
model.fit(x_train, y_train, epochs=10, callbacks=[tensorboard_callback])

在這個例子中,log_dir 參數指定了TensorBoard日志存儲的目錄路徑,訓練完成后,會在該目錄下生成日志文件,用于后續的可視化。

2. 啟動 TensorBoard

訓練完成后,你可以通過命令行啟動TensorBoard來可視化日志文件

tensorboard --logdir=./logs

這將啟動一個本地服務器,默認端口為6006(可以通過--port參數修改),你可以在瀏覽器中訪問 http://localhost:6006(或者相應的端口)來查看TensorBoard的界面。


3. TensorBoard 頁面功能


TensorBoard頁面的功能包括:

Scalars(標量):用于顯示指標隨時間的變化,如損失和準確率。
Graphs(圖形):展示模型的計算圖,有助于理解模型結構和操作流程。
Distributions(分布) 和 Histograms(直方圖):用于查看權重和梯度的分布和直方圖,有助于調試和優化模型。
Images(圖像) 和 Audio(音頻):用于顯示訓練過程中產生的圖像和音頻數據。
Projector(投影儀):用于高維數據的降維可視化,如嵌入向量。

4. 高級功能

除了基本的使用外,TensorBoard還支持一些高級功能,如自定義可視化和在遠程服務器上運行。你可以根據具體的需求和應用場景進一步探索這些功能。


通過正確設置TensorBoard回調和啟動TensorBoard服務器,你可以輕松地監控和分析模型的訓練過程和結果,從而做出更好的調整和決策。

OpenCV介紹:(Open Source Computer Vision Library)

是一個開源的計算機視覺庫,它提供了豐富的圖像處理和計算機視覺算法。下面是關于OpenCV的一些基本信息和其主要用途:


OpenCV 的基本信息:

開源性質:OpenCV 是一個開源項目,允許用戶自由地使用、修改和分發其源代碼。
跨平臺:OpenCV 可以在多個平臺上運行,包括Windows、Linux、Mac OS X、Android 等。
多語言支持:OpenCV 主要使用C++編寫,但也提供了Python、Java等多種語言的接口。
豐富的功能:OpenCV 提供了豐富的圖像處理和計算機視覺算法,涵蓋了從基本的圖像處理操作(如濾波、邊緣檢測、色彩空間轉換等)到高級的計算機視覺任務(如目標檢測、人臉識別、物體跟蹤等)的各個方面。

OpenCV 的主要用途:

圖像處理:

提供了大量的圖像處理功能,例如:圖像濾波、圖像增強、幾何變換(如旋轉、縮放)、色彩空間轉換、直方圖均衡化等。

計算機視覺:

在計算機視覺領域,OpenCV 提供了許多算法和工具,如特征檢測(SIFT、SURF等)、目標檢測(Haar 級聯檢測器、深度學習模型)、物體跟蹤、攝像頭標定、立體視覺等。

機器學習集成:

OpenCV 與機器學習的集成能力較強,支持主流的機器學習庫(如 TensorFlow、PyTorch),可以進行圖像分類、圖像分割、人臉識別等任務。

實時圖像處理:

由于其高效的設計和實現,OpenCV 適合于實時圖像處理和視頻處理應用,例如實時物體檢測、視頻流處理、運動跟蹤等。

教育和研究:

OpenCV 不僅在工業界廣泛應用,還被廣泛用于教育和研究領域,作為計算機視覺和圖像處理的教學工具和研究平臺。

總之,OpenCV 是一個功能強大且廣泛應用于圖像處理和計算機視覺領域的開源庫,為開發者提供了豐富的工具和算法,幫助他們實現各種復雜的圖像處理和計算機視覺任務。

PIL

是 Python Imaging Library 的縮寫,是一個用于圖像處理的 Python 庫。它提供了許多方便的圖像處理功能,包括打開、操作和保存多種圖像文件格式(如JPEG、PNG、BMP等),以及基本的圖像操作(如裁剪、調整大小、旋轉等)和高級的圖像處理技術(如濾波、圖像增強、顏色轉換等)。


主要特點和功能:

圖像讀寫:

PIL 允許用戶打開和保存多種常見的圖像文件格式,使得用戶可以輕松處理不同格式的圖像數據。

基本圖像操作:

包括圖像的裁剪、調整大小、旋轉、鏡像等基本的幾何變換和操作。

圖像增強:

提供了各種圖像增強技術,如銳化、模糊、邊緣增強、顏色增強等,以改善圖像質量或凸顯特定特征。

色彩空間轉換:

支持顏色空間的轉換,如RGB到灰度、RGB到HSV等,方便用戶進行顏色信息的分析和處理。

圖像濾波:

提供了一系列的圖像濾波器,如高斯濾波、中值濾波等,用于平滑圖像或去除噪聲。

圖像合成和處理:

允許用戶在圖像上繪制文本、圖形和其他圖像,進行復雜的圖像合成和處理操作。

支持批量處理:

可以輕松地批量處理圖像文件,進行相同或類似的操作,提高處理效率。

跨平臺:

PIL 可以在多個平臺上運行,并且易于安裝和使用,適合不同應用場景的圖像處理需求。

注意事項:

PIL 目前維護較少,推薦使用其后續開發的 Pillow 庫(PIL Fork),它在功能和性能上都有所增強,并且對 Python 3 的支持更好。

pytorch中較為重要的兩個函數

dir():

能 讓 我 們 知 道 工 具 箱 以 及 工 具 箱 (pytorch包)中 的 分 隔 區 有 什 么 東 西 。 (相當于打開包的作用)

help():

能 讓 我 們 知 道 每 個 工 具 是 如 何 使 用 的 , 工 具 的 使 用 方 法 。(相當于說明書

當你引入一個新模塊時,你可以先用dir()查看模塊中的內容,然后使用help()來深入了解特定函數或類的用法和功能。

代碼示例1:

import numpy as np
print(dir(np))
help(np.arange)

加載數據

dataset:

提供一種數據去獲取數據以及標簽和編號,可以看到每個要獲取的數據以及lable

dataloader:

為后面的網絡提供不同的數據形式,對dataset里的數據進行打包操作,加載數據,告訴我們總共有多少數據

代碼示例2:

import torch
from torch.utils.data import Dataset, DataLoader# 定義自定義的Dataset類
class CustomDataset(Dataset):def __init__(self, data, targets):self.data = dataself.targets = targetsdef __len__(self):return len(self.data)def __getitem__(self, index):x = self.data[index]y = self.targets[index]return x, y# 假設有一些數據和對應的標簽
data = torch.randn(100, 3, 32, 32)  # 100個3通道的32x32圖像數據
targets = torch.randint(0, 10, (100,))  # 100個隨機的0-9的整數標簽# 創建自定義的Dataset實例
dataset = CustomDataset(data, targets)# 使用DataLoader加載數據
batch_size = 10
dataloader = DataLoader(dataset, batch_size=batch_size, shuffle=True)# 迭代DataLoader獲取數據
for batch_idx, (inputs, labels) in enumerate(dataloader):# 在這里可以對每個批次的數據進行操作,例如送入模型進行訓練print(f'Batch {batch_idx}: Inputs shape {inputs.shape}, Labels shape {labels.shape}')

下面是運行結果

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

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

相關文章

尚品匯-(十七)

目錄: (1)獲取價格信息 (2)獲取銷售信息 前面的表: (1)獲取價格信息 繼續編寫接口:ManagerService /*** 獲取sku價格* param skuId* return*/ BigDecimal getSkuPrice…

『 Linux 』匿名管道應用 - 簡易進程池

文章目錄 池化技術進程池框架及基本思路進程的描述組織管道通信建立的潛在問題 任務的描述與組織子進程讀取管道信息控制子進程進程退出及資源回收 池化技術 池化技術是一種編程技巧,一般用于優化資源的分配與復用; 當一種資源需要被使用時這意味著這個資源可能會被進行多次使…

mqtt.fx連接阿里云

本文主要是記述一下如何使用mqtt.fx連接在阿里云上創建好的MQTT服務。 1 根據MQTT填寫對應端口即可 找到設備信息,里面有MQTT連接參數 2 使用物模型通信Topic,注意這里的post說設備上報,那也就是意味著云端訂閱post;set則意味著設…

【輕松拿捏】Java-final關鍵字(面試)

目錄 1. 定義和基本用法 回答要點: 示例回答: 2. final 變量 回答要點: 示例回答: 3. final 方法 回答要點: 示例回答: 4. final 類 回答要點: 示例回答: 5. final 關鍵…

搭建hadoop+spark完全分布式集群環境

目錄 一、集群規劃 二、更改主機名 三、建立主機名和ip的映射 四、關閉防火墻(master,slave1,slave2) 五、配置ssh免密碼登錄 六、安裝JDK 七、hadoop之hdfs安裝與配置 1)解壓Hadoop 2)修改hadoop-env.sh 3)修改 core-site.xml 4)修改hdfs-site.xml 5) 修改s…

【進階篇-Day9:JAVA中單列集合Collection、List、ArrayList、LinkedList的介紹】

目錄 1、集合的介紹1.1 概念1.2 集合的分類 2、單列集合:Collection2.1 Collection的使用2.2 集合的通用遍歷方式2.2.1 迭代器遍歷:(1)例子:(2)迭代器遍歷的原理:(3&…

排序——交換排序

在上篇文章我們詳細介紹了排序的概念與插入排序,大家可以通過下面這個鏈接去看: 排序的概念及插入排序 這篇文章就介紹一下一種排序方式:交換排序。 一,交換排序 基本思想:兩兩比較,如果發生逆序則交換…

jenkins系列-09.jpom構建java docker harbor

本地先啟動jpom server agent: /Users/jelex/Documents/work/jpom-2.10.40/server-2.10.40-release/bin jelexjelexxudeMacBook-Pro bin % sh Server.sh start/Users/jelex/Documents/work/jpom-2.10.40/agent-2.10.40-release/bin jelexjelexxudeMacBook-Pro bin % ./Agent.…

達夢數據庫的系統視圖v$sessions

達夢數據庫的系統視圖v$sessions 達夢數據庫(DM Database)是中國的一款國產數據庫管理系統,它提供了類似于Oracle的系統視圖來監控和管理數據庫。V$SESSIONS 是達夢數據庫中的一個系統視圖,用于顯示當前數據庫會話的信息。 以下…

全自主巡航無人機項目思路:STM32/PX4 + ROS + AI 實現從傳感融合到智能規劃的端到端解決方案

1. 項目概述 本項目旨在設計并實現一款高度自主的自動巡航無人機系統。該系統能夠按照預設路徑自主飛行,完成各種巡航任務,如電力巡線、森林防火、邊境巡邏和災害監測等。 1.1 系統特點 基于STM32F4和PX4的高性能嵌入式飛控系統多傳感器融合技術實現精…

MYSQL--第八次作業

MYSQL–第八次作業 一、備份與恢復 環境搭建: CREATE DATABASE booksDB; use booksDB;CREATE TABLE books ( bk_id INT NOT NULL PRIMARY KEY, bk_title VARCHAR(50) NOT NULL, copyright YEAR NOT NULL );CREATE TABLE authors ( auth_id INT NOT NULL PRI…

geoServer在windows中下載安裝部署詳細操作教程

這里寫目錄標題 1.安裝環境檢查2.下載安裝包(1)進入下載地址:(2)以下載最新版為例,點擊“Stable GeoServer”下載(3)安裝有兩種方式(4)我這里選擇下載war包 3…

python作業三

1.使用requests模塊獲取這個json文件http://java-api.super-yx.com/html/hello.json 2.將獲取到的json轉為dict 3.將dict保存為hello.json文件 4.用io流寫一個copy(src,dst)函數,復制hello.json到C:\hello.json import json import shutilimport requests #使用requests模塊獲…

Qt MV架構-視圖類

一、基本概念 在MV架構中,視圖包含了模型中的數據項,并將它們呈現給用戶。數據項的表示方法,可能和數據項在存儲時用的數據結構完全不同。 這種內容與表現分離之所以能夠實現,是因為使用了 QAbstractItemModel提供的一個標準模…

`nmap`模塊是一個用于與Nmap安全掃描器交互的庫

在Python中,nmap模塊是一個用于與Nmap安全掃描器交互的庫。Nmap(Network Mapper)是一個開源工具,用于發現網絡上的設備和服務。雖然Python的nmap模塊可能不是官方的Nmap庫(因為Nmap本身是用C/C編寫的)&…

基于JavaSpringBoot+Vue+uniapp微信小程序校園宿舍管理系統設計與實現

基于JavaSpringBootVueuniapp微信小程序實現校園宿舍管理系統設計與實現 目錄 第一章 緒論 1.1 研究背景 1.2 研究現狀 1.3 研究內容 第二章 相關技術介紹 2.1 Java語言 2.2 HTML網頁技術 2.3 MySQL數據庫 2.4 Springboot 框架介紹 2.5 VueJS介紹 2.6 ElementUI介紹…

視頻轉換、提取音頻、視頻加水印、視頻去水印、音頻轉換、分割合并壓縮等,批量還幾乎免費

「想轉就轉視頻音頻助手」免費版來襲! 在數字化時代,視頻和音頻處理已成為我們日常生活的一部分。無論是制作個人視頻博客、編輯家庭影片,還是處理音頻文件,我們都在尋找一個強大而易于使用的解決方案。今天,我要向您…

基于大語言模型(LLM)的合成數據生成、策展和評估的綜述

節前,我們星球組織了一場算法崗技術&面試討論會,邀請了一些互聯網大廠朋友、參加社招和校招面試的同學。 針對算法崗技術趨勢、大模型落地項目經驗分享、新手如何入門算法崗、該如何準備、面試常考點分享等熱門話題進行了深入的討論。 合集&#x…

【JVM實戰篇】內存調優:內存泄露危害+內存監控工具介紹+內存泄露原因介紹

文章目錄 內存調優內存溢出和內存泄漏內存泄露帶來什么問題內存泄露案例演示內存泄漏的常見場景場景一場景二 解決內存溢出的方法常用內存監控工具Top命令優缺點 VisualVM軟件、插件優缺點監控本地Java進程監控服務器的Java進程(生產環境不推薦使用) Art…

【圖解大數據技術】流式計算:Spark Streaming、Flink

【圖解大數據技術】流式計算:Spark Streaming、Flink 批處理 VS 流式計算Spark StreamingFlinkFlink簡介Flink入門案例Streaming Dataflow Flink架構Flink任務調度與執行task slot 和 task EventTime、Windows、WatermarksEventTimeWindowsWatermarks 批處理 VS 流式…