pytorch:tensorboard和transforms學習

  1. tensorboard:可視化數據

    在anaconda安裝:

    pip install tensorboard==2.12.0
    

    最好使用這個版本 不然后面調用會報錯 因為版本過高的原因

    然后還碰到了安裝的時候 安裝到C盤去了 但是我用的虛擬環境是在E盤:此時去C盤把那些新安裝的復制過來就好了 附錄我C盤的路徑:C:\Users\asus\AppData\Roaming\Python\Python38\Scripts

    (搜索了一下有大佬說可能是python版本的問題 以后pip/conda install的時候指定一下python版本 可以先在虛擬環境中python --version查看一下)

  2. transforms:數據增強(數據預處理)

    transforms是個工具箱 里面有很多工具 可以處理圖片得到一個結果

    tool = transforms.totensor()

    result = tool(input)

    為什么非要轉化成tensor型?因為它里面有很多神經網絡深度學習的參數 想要訓練就需要tensor型

  3. 常見的transforms工具(按住ctrl可以進入源碼)

    1. ToTensor()

      code:

      from PIL import Image
      from torch.utils.tensorboard import SummaryWriter
      from torchvision import transformswriter = SummaryWriter('../logs')
      #tensorboard --logdir=../logs
      img = Image.open('../images/1.jpg')
      print(img)# use TOTensor()
      trans_tensor = transforms.ToTensor()
      img_tensor = trans_tensor(img)
      writer.add_image('totensor',img_tensor,dataformats='CHW')writer.close()
      

      logs:

      在這里插入圖片描述

    2. Normalize() 標準化

      設置Normalize([0.5,0.5,0.5],[0.5,0.5,0.5]) (這樣設置可以實現歸一化)

      input[channel] = (input[channel] - mean[channel]) / std[channel]

      =(input - 0.5) / 0.5

      =2 * input - 1

      input [0,1]

      result [-1,1]

      code:(在writer.close()之前加上)

      # use Normalize()
      print(img_tensor[0][0][0])
      trans_norm = transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])
      #trans_norm = transforms.Normalize([1,2,3],[3,2,1])
      img_norm = trans_norm(img_tensor)
      print(img_norm[0][0][0])
      writer.add_image('normalize',img_norm)
      #writer.add_image('normalize',img_norm,1)
      

      logs:

      在這里插入圖片描述

      可以換幾個數據試一下:(冬天寒冷小蘇 變成夏天紅溫小蘇了)

      在這里插入圖片描述

    3. Resize()

      改變圖片大小

      code:

      #use Resize()
      print(img.size)
      trans_resize = transforms.Resize((512,512))
      img_resize = trans_resize(img)
      img_resize = trans_totensor(img_resize)
      print(img_resize)
      writer.add_image('resize',img_resize,0)
      

      好吧:是拉伸小餅

      在這里插入圖片描述

    4. Compose()

      串聯多個圖片變換的操作

      code:

      #use Compose() - Resize() - 2
      trans_resize_2 = transforms.Resize(512)
      trans_compose = transforms.Compose([trans_resize_2,trans_totensor])
      img_resize_2 = trans_compose(img)
      writer.add_image('resize',img_resize_2,1)
      

      在這里插入圖片描述

    5. RandomCrop()

      隨機裁剪

      code:

      #use RandomCrop()
      trans_random = transforms.RandomCrop(512)
      trans_compose_2 = transforms.Compose([trans_random,trans_totensor])
      #隨機裁剪十次
      for i in range(10):img_crop = trans_compose_2(img)writer.add_image('random_crop',img_crop,i)
      

      在這里插入圖片描述

      在這里插入圖片描述

      還可以根據寬和高裁剪的

      code:

      trans_random = transforms.RandomCrop((500,1000))
      trans_compose_3 = transforms.Compose([trans_random,trans_totensor])
      for i in range(10):img_crop = trans_compose_3(img)writer.add_image('random_crophw',img_crop,i)
      

      在這里插入圖片描述

    6. 以上完整代碼

      先展示目錄結構:

      在這里插入圖片描述

      code:

      from PIL import Image
      from torch.utils.tensorboard import SummaryWriter
      from torchvision import transforms
      import cv2
      import numpy as npwriter = SummaryWriter('../logs')
      #tensorboard --logdir=../logs
      img = Image.open('../images/1.jpg')
      print(img)# use TOTensor()
      trans_totensor = transforms.ToTensor()
      img_tensor = trans_totensor(img)
      writer.add_image('totensor',img_tensor,dataformats='CHW')# use Normalize()
      print(img_tensor[0][0][0])
      trans_norm = transforms.Normalize([1,2,3],[3,2,1])
      img_norm = trans_norm(img_tensor)
      print(img_norm[0][0][0])
      writer.add_image('normalize',img_norm,1)#use Resize()
      print(img.size)
      trans_resize = transforms.Resize((512,512))
      img_resize = trans_resize(img)
      img_resize = trans_totensor(img_resize)
      print(img_resize)
      writer.add_image('resize',img_resize,0)#use Compose() - Resize() - 2
      trans_resize_2 = transforms.Resize(512)
      trans_compose = transforms.Compose([trans_resize_2,trans_totensor])
      img_resize_2 = trans_compose(img)
      writer.add_image('resize',img_resize_2,1)#use RandomCrop()
      trans_random = transforms.RandomCrop(512)
      trans_compose_2 = transforms.Compose([trans_random,trans_totensor])
      for i in range(10):img_crop = trans_compose_2(img)writer.add_image('random_crop',img_crop,i)trans_random = transforms.RandomCrop((500,1000))
      trans_compose_3 = transforms.Compose([trans_random,trans_totensor])
      for i in range(10):img_crop = trans_compose_3(img)writer.add_image('random_crophw',img_crop,i)writer.close()
      

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

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

相關文章

常用的100個opencv函數

以下是OpenCV中最常用的100個函數及其作用與注意事項的全面整理,按功能模塊分類,結合官方文檔與工業實踐優化排序。各函數均標注Python(cv2)和C(cv::)命名,重點參數以加粗突出: &…

【C++】紅黑樹,詳解其規則與插入操作

各位大佬好,我是落羽!一個堅持不斷學習進步的大學生。 如果您覺得我的文章有所幫助,歡迎多多互三分享交流,一起學習進步! 也歡迎關注我的blog主頁: 落羽的落羽 一、紅黑樹的概念與規則 紅黑樹是一種更加特殊的平衡二…

Camera相機人臉識別系列專題分析之十七:人臉特征檢測FFD算法之libhci_face_camera_api.so 296點位人臉識別檢測流程詳解

【關注我,后續持續新增專題博文,謝謝!!!】 上一篇我們講了: 這一篇我們開始講: Camera相機人臉識別系列專題分析之十七:人臉特征檢測FFD算法之libhci_face_camera_api.so 296點位人臉識別檢測流程詳解 目錄 一、背景 二、:FFD算法libhci_face_camera_api.s…

PostgreSQL 16 Administration Cookbook 讀書筆記:第7章 Database Administration

編寫一個要么完全成功要么完全失敗的腳本 事務(transaction)可以實現all or nothing。不過這里指的是psql的-和--single-transaction選項。可以實現transaction wrapper: 此選項只能與一個或多個 -c 和/或 -f 選項組合使用。它會導致 psql 在…

DeepSeekMath:突破開源語言模型在數學推理中的極限

溫馨提示: 本篇文章已同步至"AI專題精講" DeepSeekMath:突破開源語言模型在數學推理中的極限 摘要 數學推理由于其復雜且結構化的特性,對語言模型構成了重大挑戰。本文介紹了 DeepSeekMath 7B,該模型在 DeepSeek-Code…

實體類序列化報錯:Caused by: java.lang.NoSuchMethodException: com.xx.PoJo$Item.<init>()

原實體類代碼EqualsAndHashCode(callSuper true) Data public class Pojo extends BaseBean {private static final long serialVersionUID -4291335073882689552L;ApiModelProperty("")private Integer id;......private List<Item> list;AllArgsConstructo…

基于單片機病床呼叫系統/床位呼叫系統

傳送門 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目速選一覽表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目功能速覽 概述 該系統是以單片機STM32F103為核心的基于無線網絡的醫院病房呼叫系統&#xff0c;分為從機和主機兩…

[黑馬頭條]-登錄實現思路

需求分析在黑馬頭條項目中&#xff0c;登錄有兩種方式&#xff1a;一種是用戶輸入賬號密碼后登錄&#xff0c;這種方式登陸后的權限很大&#xff0c;可以查看&#xff0c;也可以進行其他操作&#xff1b;另一種方式就是用戶點擊不登錄&#xff0c;以游客的身份進入系統&#xf…

了解.NET Core狀態管理:優化技巧與常見問題解決方案

前言 歡迎關注dotnet研習社&#xff0c;今天我們聊聊“ .NET Core 中的狀態管理”。 在Web應用程序中&#xff0c;管理和維持狀態是一個非常重要的主題&#xff0c;尤其是在無狀態的環境中&#xff0c;如 HTTP 協議和 RESTful API。對于基于 .NET Core 構建的應用程序&#xff…

504網關超時可能是哪些原因導致?

在網絡訪問中&#xff0c;504 網關超時&#xff08;Gateway Timeout&#xff09;如同一個突然亮起的警示燈&#xff0c;打斷用戶的瀏覽或操作流程。這個 HTTP 狀態碼意味著服務器作為網關或代理時&#xff0c;未能在規定時間內收到上游服務器的響應。引發504錯誤的核心因素有哪…

ComfyUI 常見報錯問題解決方案合集(持續更新ing)

前言&#xff1a; 本文匯總了 5 大高頻問題 及其解決方案&#xff0c;涵蓋&#xff1a; HuggingFace 認證修復&#xff08;Token 申請 手動下載指南&#xff09; ComfyUI 版本更新&#xff08;完整命令 依賴管理&#xff09; 自啟動配置&#xff08;Conda 環境 權限修復&…

完美解決Linux服務器tomcat開機自啟動問題

經過多次測試終于徹底解決tomcat開機自啟動的問題了 PID3ps aux | grep /home/server/shichuan/ | grep java | awk {print $2} if [ -n "$PID3" ]; then 這個判斷pid的方式還是可能出現啟動失敗的情況 # tail -n 1 /home/server/shichuan/logs/catalina.out |grep…

kotlin部分常用特性總結

<h3>Kotlin中類和對象初始化</h3><ul> <li>添加open關鍵字代表可以被繼承</li> <li>Any 是所有類的父類,類似Object,包含 equals() hashCode() toString()方法</li> <li>constructor 關鍵字代表構造函數, constructor關鍵字可…

PHP 就業核心技能速查手冊

# PHP 就業核心技能速查手冊 > 高效聚焦市場所需&#xff0c;快速提升競爭力 --- ## 一、語法基礎&#xff08;必會&#xff01;&#xff09; php // 1. 變量與數據類型 $price 19.99; // 浮點型 $isStock true; // 布爾型 // 2. 流程控制 foreach ($…

從混沌到秩序:數據科學的熱力學第二定律破局——線性回歸的熵減模型 × 最小二乘的能量最小化 × 梯度下降的負反饋控制系統,用物理定律重構智能算法的統一場論

目錄 一、機器學習是什么&#xff1f; 1.1 什么是機器學習&#xff1f; 1.2 機器學習的三大類型 二、線性回歸是什么&#xff1f; 2.1 通俗理解 2.2 數學表達 三、最小二乘法&#xff08;Least Squares Method&#xff09; 3.1 什么是損失函數&#xff1f; 3.2 什么是最小…

BI 數據可視化平臺建設(3)—首頁性能提升實踐

作者&#xff1a; vivo 互聯網大數據團隊- Wang Lei 本文是vivo互聯網大數據團隊《BI 數據可視化平臺建設》系列文章第3篇。 隨著越來越多代碼的堆積&#xff0c;平臺的運行加載性能也在逐步下降&#xff0c;在不同程度上極大地影響了用戶體驗&#xff0c;從而導致用戶流失。本…

基于Python的畢業設計選題管理系統設計與實現

基于Python的畢業設計選題管理系統設計與實現摘要本論文詳細闡述了一個基于Python的畢業設計選題管理系統的設計與實現過程。該系統采用了Python的Tkinter庫構建圖形用戶界面&#xff0c;使用SQLite數據庫存儲數據&#xff0c;實現了高校畢業設計選題過程中的教師出題、學生選題…

如何在HTML5頁面中嵌入視頻

在HTML5中嵌入視頻主要使用<video>標簽&#xff0c;這是一種簡單且標準的方式。以下是詳細步驟和示例&#xff1a; 基礎實現 <!DOCTYPE html> <html> <head><title>視頻嵌入示例</title> </head> <body><!-- 基礎視頻播放器…

java操作Excel兩種方式EasyExcel 和POI

一、POI1.引入依賴<!-- 03 xls--> <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.9</version> </dependency><!-- 07 xlsx --> <dependency><groupId>org.a…

Openlayers 面試題及答案180道(141-160)

《前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,MySQL,Linux… 。 前后端面試題-專欄總目錄 文章目錄 一、本文面試題目錄 141. 如何在生產環境中優…