PyTorch深度學習快速入門

PyTorch深度學習快速入門

  • 1.PyTorch環境配置及安裝
  • 2.python編輯器的選擇、安裝、配置(pycharm、JupyTer安裝)
  • 3.為什么torch.cuda.is_available()返回false
  • 4.python學習中兩大法寶函數(也可用在pytorch)
  • 5.pycharm和jupyter(究bi特)使用及對比
  • 6.pytorch加載數據初認識
  • 7.dataset類代碼實戰
  • 8.TensorBoard的使用(一)
  • 9.TensorBoard的使用(二)
  • 10.Transforms的使用(一)
  • 11.Transforms的使用(二)
  • 12.常見的Transforms(一)
  • 13.常見的Transforms(二)
  • 14.torchvision中的數據集的使用
  • 15.DataLoader的使用

1.PyTorch環境配置及安裝

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
https://repo.anaconda.com/
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在開始菜單打開Anaconda prompt
在命令行窗口看見base就是安裝成功
在這里插入圖片描述
在這里插入圖片描述
我們要檢查顯卡的驅動是否正確安裝
在這里插入圖片描述
看到GPU正常顯示型號,則顯卡驅動已經正確安裝了
在這里插入圖片描述
在正確安裝pytorch之前
我們要學會如何正確管理環境
因為我們之后在不同的項目、代碼需要的環境是不一樣的
有的代碼需要pytorch0.4、有的需要1.0
conda create -n pytorch python=3.6
在這里插入圖片描述
在這里插入圖片描述

n表示name的意思,pytorch就是這個環境的名字
python=3表示要安裝的包
在這里插入圖片描述
在這里插入圖片描述
conda activate pytorch用來激活這個環境
左邊括號里面的就是環境的名稱
在這里插入圖片描述

pip list用來查看環境中有哪些工具包
在這里插入圖片描述
但其中沒有我們需要的pytorch
下面我們開始安裝pytorch

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
我們需要知道自己GPU的型號

在這里插入圖片描述
在這里插入圖片描述
沒有顯卡 CUDA選擇None

在這里插入圖片描述
在這里插入圖片描述

conda9.2以上要確保我們的驅動版本大于396.26
我們要先查詢一下自己的驅動版本nvidia-smi
在這里插入圖片描述

在這里插入圖片描述
conda install pytorch torchvision cudatoolkit=9.2 -c pytorch -c defaults -c numba/label/dev

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

使用python
import torch
觀察pytorch是否安裝成功
在這里插入圖片描述

使用torch.cuda.is_available()這個命令觀察是否可以使用GPU
在這里插入圖片描述
顯示false是因為cuda下錯版本了,要與自己的電腦對應起來
比如我的
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

在這里插入圖片描述

3060最低要11.1的cuda

2.python編輯器的選擇、安裝、配置(pycharm、JupyTer安裝)

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
選擇地址和環境
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
下面檢測一下pycharm是否成功導入了conda的運行環境
torch.cuda.is_available()
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
jupyter是默認安裝在外面的base環境中的
但我們的base環境是沒有安裝pytorch的
所以這個jupyter無法使用pytorch
我們可以在base環境中安裝pytorch或者在pytorch環境中安裝jupyter
我們使用第二種方法
先進入pytorch環境
conda activate pytorch
在這里插入圖片描述
我的pytorch環境中沒有
在這里插入圖片描述

使用conda install nb_conda安裝
在這里插入圖片描述
在這里插入圖片描述

安裝完成后輸入jupyter notebook
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
http://localhost:8888/?token=f0d9cb3f4543dceeb4737d957381b4c3ab37070ce474b819

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
點擊shift+回車運行代碼塊
torch.cuda.is_available()

如果是中文用戶名可能會運行不了
在環境變量下做如下修改
在這里插入圖片描述

%systemroot%\TEMP
在這里插入圖片描述
%USERPROFILE%\AppData\Local\Temp

在這里插入圖片描述
在這里插入圖片描述

3.為什么torch.cuda.is_available()返回false

在這里插入圖片描述
在這里插入圖片描述

4.python學習中兩大法寶函數(也可用在pytorch)

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
輸出只有一行的,可以點擊此刻頁面最左側第2列第一個按鈕“Soft-warp”

在這里插入圖片描述
查看torch.cuda
我們可以看見之前用的is.available
在這里插入圖片描述
在這里插入圖片描述
有_表示它是一個函數
在這里插入圖片描述

5.pycharm和jupyter(究bi特)使用及對比

首先是pycharm
在這里插入圖片描述
在這里插入圖片描述
如何確定這個文件使用的是我們的pytorch的cuda環境呢
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
新建一個python文件
在這里插入圖片描述
如何運行這個文件
我們要添加相應的python解釋器
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
點擊確定就OK了

在這里插入圖片描述
在這里插入圖片描述

我們也可以直接在python控制臺
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在里面創建一個新的文件
先選擇相應的環境
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

6.pytorch加載數據初認識

在這里插入圖片描述
https://pan.baidu.com/s/1jZoTmoFzaTLWh4lKBHVbEA 密碼: 5suq
可以下載一下數據集
在這里插入圖片描述
這個數據集分為train(訓練數據集)和val(驗證數據集)

下面是train
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
這是一個識別螞蟻和蜜蜂對他進行二分類的一個數據集
其中ants和bees這兩個文件的名稱就是label

還有其他的形式
在這里插入圖片描述
告訴我們訓練的圖片是什么樣子
在這里插入圖片描述
告訴我們訓練的label是什么樣子
在這里插入圖片描述
在這里插入圖片描述

或者我們也可以將label直接寫在圖片名稱上面

下面說明如何使用dataset類
在這里插入圖片描述
或者

在這里插入圖片描述
在這里插入圖片描述

7.dataset類代碼實戰

在這里插入圖片描述

使用控制臺進行一個調試
在這里插入圖片描述
在這里插入圖片描述
將數據集放到項目中,并且重命名為dataset
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
我們要獲取圖片的地址
根據def getitem(self, idx):中的idx這個索引去獲取
先去獲取所有圖片地址的一個列表
使用OS去獲取
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述
上面我們就是獲得了所有圖片的地址

下面我們要獲取每一個圖片
在這里插入圖片描述

下面考慮這個數據有多長
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

如果我們想要獲取蜜蜂的數據集
在這里插入圖片描述
我們訓練數據集就是這兩個數據集的一個集合
在這里插入圖片描述如果我們將數據集進行另外一種形式的表達
在這里插入圖片描述
每一張圖片對應的label

在這里插入圖片描述

8.TensorBoard的使用(一)

在這里插入圖片描述
tranform可以我們的圖像統一到同一個尺寸
或者對圖像中的每一個數據進行一個類的轉換

在這里插入圖片描述
我們一般想知道我們的訓練過程中的loss是如何變化的
通過這個loss知道我們的訓練過程是否安裝我們預想的變化
我們也可以從相應的loss中去看一下我們選擇什么樣的模型

在這里插入圖片描述
上面這個圖就是在外面的2974步輸入的圖像

這個TensorBoard可以幫助我們探究一些模型在不同的階段是如何輸出的

在這里插入圖片描述
首先打開項目文件夾,設置環境
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

查看如何使用
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
tag就是圖表的title
在這里插入圖片描述
scalar_value是我們對應的數值,y軸

global_step是我們訓練到多少步,x軸

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
我們沒有還沒有安裝tensorboard這個包
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
如果在一臺服務器上有好幾個人訓練
可能端口會沖突
我們可以指定一下這個端口
tensorboard --logdir=logs
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
write寫入一個新的事件當中
其實也進入了上一個事件當中
就會出現上面的情況

第一種方法
我們可以將對應的logs下面的文件全部刪除
在這里插入圖片描述
在這里插入圖片描述

第二種方法
在這里插入圖片描述

9.TensorBoard的使用(二)

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
其中的img_tensor要么是torch_tensor型,要么是numpy.array型。。。
在這里插入圖片描述
在這里插入圖片描述
我們這邊的圖片類型是不滿足要求的

我們安裝一下opencv
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
轉換為numpy型

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

10.Transforms的使用(一)

在這里插入圖片描述
transforms主要用來對圖片進行一些變換
在這里插入圖片描述
在這里插入圖片描述
左邊的structure可以看它的結構
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
我們上面就是將img類型的圖片轉換為我們tensor類型的一個圖片
在這里插入圖片描述
在這里插入圖片描述

11.Transforms的使用(二)

我們為什么需要tensor這個數據類型
在這里插入圖片描述
tensor包裝了我們神經網絡所需要的一些參數
我們在神經網絡中一般先把數據轉化為tensor型,然后進行一些訓練
在這里插入圖片描述

在這里插入圖片描述
我們上面學習了PIL Image類型的讀取
那么如何讀取numpy類型的呢
最常用的就是使用opencv

我們安裝一下OpenCV

pip install opencv-python( conda install py-opencv)

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

12.常見的Transforms(一)

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
compose是將圖片進行一個中心的裁剪然后轉換為tensor
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

_ _ cal l_ _ 可以直接調用

在這里插入圖片描述

在這里插入圖片描述
輸入必須是一個PIL Image或者numpy類型轉換為一個tensor類型

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
歸一化
輸入必須是一個tensor類型
用平均值和標準差對張量圖像進行歸一化
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
輸入的img_tensor有三個通道,人為設置均值和標準差都是0.5,
然后利用公式算的輸出值img_norm

在這里插入圖片描述
下面就是我們歸一化后的一個結果
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
一般圖像多少RGB,三通道

在這里插入圖片描述

13.常見的Transforms(二)

在這里插入圖片描述

輸入是PIL Image類型
在這里插入圖片描述
在這里插入圖片描述
尺寸由原來的3200 * 3200 變為 512 * 512
輸出的是PIL Image類型
如果我們想要在tensorboard進行顯示的話
我們要將img_resize變為totensor的一個數據類型
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
當你對一個圖像應用trans_compose變換時,它首先會使用trans_resize_2進行尺寸調整,然后使用trans_totensor將PIL圖像轉換為PyTorch的Tensor。

這個參數是個列表
其實就是將resize變換和totensor合并了
所以列表兩個參數代表這兩個過程合并。

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

下面我們看另外一個方法
隨機裁剪
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

14.torchvision中的數據集的使用

介紹如何將數據集和我們的transforms結合在一起
在科研當中一些標準的數據集如何去下載、組織、查看、使用
在這里插入圖片描述
下面是官網提供的數據集
在這里插入圖片描述

比如其中的CIFAR10數據集一般用于物體識別
在這里插入圖片描述

root表示數據集在什么位置
train為true的話表示為訓練集、false表示為測試集
transform表示我們想對訓練的數據集進行一個什么樣的變化
target_transform表示對target進行一個transform
download如果為true的話,會從網上自動給我們下載這個數據集

在這里插入圖片描述
torchvision.models中會提供一些預訓練好的神經網絡模塊
在這里插入圖片描述

介紹如何將數據集和我們的transforms結合在一起

在這里插入圖片描述
這里會在我們的文件夾下創建dataset,并且下載CIFR10數據集到其中
在這里插入圖片描述
在這里插入圖片描述
前面是我們的輸入圖片
后面是我們的target類別,這里將我們的真實類別表示為一個數字3
如果target為0,就是airplane
在這里插入圖片描述

在這里插入圖片描述

如果我們想要看一下這個圖片
在這里插入圖片描述
在這里插入圖片描述

下面介紹一下CIFAR10這個數據集
6萬張32 * 32像素的彩色圖片,且分為10個類別
5w訓練,1w測試
在這里插入圖片描述
下面和我們的transform進行聯動
因為我們的原始圖片是PIL Image
如果要給我們的pytorch進行使用,需要轉為tensor數據類型
這里我們就使用transform

在這里插入圖片描述
這里就是一個tensor數據類型
我們也可以使用我們的tensorboard進行一個顯示
比如我們想顯示測試數據集中的前10張圖片
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

我們下載數據集的時候,可以直接在迅雷上使用URL鏈接進行下載
在這里插入圖片描述
在這里插入圖片描述

15.DataLoader的使用

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

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

相關文章

golang goroutine 如何退出?

上一講說到調度器將maingoroutine推上舞臺,為它鋪好了道路,開始執行runtime.main函數。這一講,我們探索maingoroutine以及普通goroutine從執行到退出的整個過程。 //Themaingoroutine. funcmain(){ //gmaingoroutine,不再是g0了 …

Python列表中添加刪除元素不走彎路

1.append() 向列表中添加單個元素,一般用于尾部追加 list1 ["香妃", "乾隆", "賈南風", "趙飛燕", "漢武帝"]list1.append("周瑜") print(list1) # [香妃, 乾隆, 賈南風, 趙飛燕, 漢武帝, 周瑜]…

STM32標準庫——(14)I2C通信協議、MPU6050簡介

1.I2C通信 I2C 通訊協議(Inter-Integrated Circuit)是由Phiilps公司開發的,由于它引腳少,硬件實現簡單,可擴展性強, 不需要USART、CAN等通訊協議的外部收發設備,現在被廣泛地使用在系統內多個集成電路(IC)間…

【LeetCode每日一題】【BFS模版與例題】863.二叉樹中所有距離為 K 的結點

BFS的基本概念 BFS 是廣度優先搜索(Breadth-First Search)的縮寫,是一種圖遍歷算法。它從給定的起始節點開始,逐層遍歷圖中的節點,直到遍歷到目標節點或者遍歷完所有可達節點。 BFS 算法的核心思想是先訪問當前節點的…

計算機網絡_2.2物理層下面的傳輸媒體

2.2物理層下面的傳輸媒體 一、傳輸媒體的分類二、導向型傳輸媒體1、同軸電纜2、雙絞線3、光纖(1)光纖通信原理(2)光纖組成(4)多模光纖與單模光纖對比(5)光纖的波長與規格&#xff08…

海量淘寶商品數據如何實現自動化抓取?

隨著電子商務的飛速發展,淘寶作為中國最大的網絡購物平臺之一,其商品數據具有極高的商業價值。然而,如何有效地從海量的淘寶商品數據中抓取所需信息,成為了一個技術挑戰。本文將深入探討如何實現淘寶商品數據的自動化抓取&#xf…

c# using 用法

using命令空間 導入命名空間中的所有類型 如:using System.Text; using別名 using別名包括詳細命名空間信息的具體類型,這種做法有個好處就是當同一個cs引用了兩個不同的命名空間,但兩個命名空間都包括了一個相同名字的類型的時候。當需要…

SQL加鎖機制深度解析:不同隔離級別與索引類型的影響

首先,我們先理解一下涉及的幾個核心概念: 主鍵 (Primary Key): 主鍵是數據庫表中的特殊列,用于唯一標識表中的每一行。它不能有重復值,也不能有NULL值。 唯一索引 (Unique Index): 唯一索引類似于主鍵,但它允許NULL值…

數據可視化基礎與應用-02-基于powerbi實現連鎖糕點店數據集的儀表盤制作

總結 本系列是數據可視化基礎與應用的第02篇,主要介紹基于powerbi實現一個連鎖糕點店數據集的儀表盤制作。 數據集描述 有一個數據集,包含四張工作簿,每個工作簿是一張表,其中可以銷售表可以劃分為事實表,產品表&am…

【Python小技巧】將list變量寫入本地txt文件并讀出為list變量的方法(附代碼)

文章目錄 前言一、萬能的txt和eval大法二、具體代碼和使用方法總結 前言 使用Python,我們偶爾需要將一些變量保存到本地,并被其它代碼讀取作為參數,那么怎么辦呢? 一、萬能的txt和eval大法 這里教大家一個簡單的方法&#xff0c…

912. 排序數組(快速排序)

快速排序: 分:找到分成兩部分進行排序的pos(使用partition)治:分別對這兩部分進行快速排序 重點:partition 找到pivot(兩個方法:1. 取第一個值;2. 取隨機值&#xff09…

Linux時間同步(PPS、PTP、chrony)分析筆記

1 PPS(pulse per second) 1.1 簡介 LinuxPPS provides a programming interface (API) to define in the system several PPS sources. PPS means "pulse per second" and a PPS source is just a device which provides a high precision signal each second so t…

每日一題 2673使二叉樹所有路徑值相等的最小代價

2673. 使二叉樹所有路徑值相等的最小代價 題目描述: 給你一個整數 n 表示一棵 滿二叉樹 里面節點的數目,節點編號從 1 到 n 。根節點編號為 1 ,樹中每個非葉子節點 i 都有兩個孩子,分別是左孩子 2 * i 和右孩子 2 * i 1 。 樹…

Java緩存簡介

內存訪問速度和硬盤訪問速度是計算機系統中兩個非常重要的性能指標。 內存訪問速度:內存是計算機中最快的存儲介質,它的訪問速度可以達到幾納秒級別。內存中的數據可以直接被CPU訪問,因此讀寫速度非常快。 硬盤訪問速度&…

學習和工作的投入產出比(節選)

人工智能統領全文 推薦包含關于投入、產出、過剩、市場關注、案例、結果和避雷等主題的信息: 投入與產出: 投入和產出都有直接和間接兩類常見形式。常見的四種組合是:直接投入、直接產出、間接投入、間接產出。 過剩: 過剩是一個重…

力扣SQL50 無效的推文 查詢

Problem: 1683. 無效的推文 思路 👨?🏫 參考 char_length(str):計算 str 的字符長度length(str):計算 str 的字節長度 Code select tweet_id from Tweets where char_length(content) > 15;

C++與 Fluke5500A設備通過GPIB-USB-B通信的經驗積累

C與 Fluke5500A設備通過GPIB-USB-B通信的經驗積累 以下內容來自:C與 Fluke5500A設備通過GPIB-USB-B通信的經驗積累 - JMarcus - 博客園 (cnblogs.com)START 1.需要安裝NI-488.2.281,安裝好了之后,GPIB-USB-B的驅動就自動安裝好了 注意版本…

動態規劃(算法競賽、藍橋杯)--單調隊列滑動窗口與連續子序列的最大和

1、B站視頻鏈接&#xff1a;E11【模板】單調隊列 滑動窗口最值_嗶哩嗶哩_bilibili 題目鏈接&#xff1a;滑動窗口 /【模板】單調隊列 - 洛谷 #include <bits/stdc.h> using namespace std; const int N1000010; int a[N],q[N];//q存的是元素的下標 int main(){int n,k;…

unity學習(41)——創建(create)角色腳本(panel)——UserHandler(收)+CreateClick(發)——創建發包!

1.客戶端的程序結構被我精簡過&#xff0c;現在去MessageManager.cs中增加一個UserHandler函數&#xff0c;根據收到的包做對應的GameInfo賦值。 2.在Model文件夾下新增一個協議文件UserProtocol&#xff0c;內容很簡單。 using System;public class UserProtocol {public co…

金融短信群發平臺具有那些特點

金融短信群發平臺的特點主要包括以下幾個方面&#xff1a; 1.高效性&#xff1a;金融短信群發平臺能夠快速地發送大量的短信&#xff0c;使得金融信息能夠迅速傳達給目標客戶&#xff0c;保證了信息的及時性和有效性。 2.安全性&#xff1a;金融短信群發平臺對于信息的安全性非…