【DL學習筆記】DL入門指南

DL入門指南

資料課程

  1. 李沐老師 《動手學深度學習》
    https://tangshusen.me/Dive-into-DL-PyTorch/
  2. 李宏毅老師課程
    https://speech.ee.ntu.edu.tw/~hylee/ml/2021-spring.php

DL入門必掌握知識點

  • 數據處理 : numpy、torch
  • 地址處理 : os、pathlib
  • 文件處理 : json、yaml
  • 命令行參數解析 :args
  • 獲取時間 : time
  • 圖片讀取與可視化: PIL、cv2、matplotlib
  • 數據預處理與數據增強 :torchvision.transforms、cv2
  • 獲取常用數據/處理數據 :torchvision.datasets、自定義dataset
  • 迭代batch數據 : torch.utils.data.DataLoader、自定義collate_fn
  • 模型搭建 : torch.nn、torch.nn.functional
  • 獲取(預訓練)模型 :torchvision.models
  • 保存日志 :tensorboard、logging
  • 優化器 :torch.optim
  • 學習率調度器 :torch.optim.lr_scheduler
  • 模型參數/checkpoint 保存與加載
  • 遷移學習:模型修改、參數凍結
  • 各任務常用損失函數
  • 各任務評價指標
  • 項目環境配置

入門算法

包括但不限于以下算法:
第一階段 :LeNet、AlexNet、GoogleNet、VGG
第二階段 :Resnet、DenseNet、Unet、FCN
第三階段 :Faster RCNN、SSD、YOLO v3、self-attention、Vision Transformer(encoder-decoder模塊)
第四階段 : YOLO 系列 、 DETR 系列、(有興趣的可以看 Mamba 系列)

入門評估

怎樣才算入門?
1、掌握模型訓練代碼框架
2、熟悉各種常用數據集
3、無障礙預處理數據
4、玩轉以 resnet 為 backbone 的各種遷移學習算法
5、熟悉圖像分類任務、目標檢測任務、語義分割任務的常用損失函數與評價指標
6、完全理解 Fater RCNN、SSD、YOLO v3、Attention 的理論,看懂并理解每一行代碼

如何快速入門

1、入門有哪些東西需要學習
2、建議的學習步驟
3、相關的學習資料從哪獲取

深度學習 想要快速入門,需從2個方面進行提升:

  • 理論知識 :多看 csdn、b站 等平臺的 經典算法理論講解
  • 代碼能力 :動手臨摹一些經典算法,這些算法基本都是開源的
    • Step 1 :動手臨摹一些 簡單的、經典的開源算法,(比如 LeNet、AlexNet、GoogleNet、VGG) ,務必搞懂每一行代碼的作用與原理、整理自己的訓練代碼框架 訓練代碼框架
    • Step 2 :入門后,在代碼能力提升階段,多看別人的代碼,碰到經常見到的、不熟悉的模塊的使用,再進行資料查找并學習,整理自己的學習筆記 (功能模塊代碼)!一定要整理自己的學習筆記!

Step 1 : LeNet、AlexNet、GoogleNet、VGG 一定是你入門必學必臨摹的算法

這個階段的目標:

  • 熟悉整體的訓練代碼框架 訓練代碼框架、理解每一行代碼的作用與原理
  • 掌握 torchvision 中的3個重要模塊:torchvision.modelstorchvision.datasetstorchvision.transforms
  • 掌握如下知識點的理論與代碼使用:
    • 簡單的基礎模型搭建
    • 模型查看
    • 如何直接從 torchvision.datasets 獲取常用數據
    • 簡單的使用 torchvision.transforms 進行圖像預處理
    • DataLoader 的基礎使用,參數功能掌握
    • 幾種優化器的理論知,torch.optim 的模塊使用
    • 學習率、梯度、反向傳播的關系
    • 分類任務、目標檢測任務、分割任務 常用的損失函數 理論與 相關pytorch類的使用

Step 2 :玩轉常用數據集

熟悉常用數據集:MNIST、Flowers、CIFAR、MSCOCO、PascalVOC

根據每個數據集,整理你自己的 數據處理通用代碼 :

  • 一方面,幫助你學習數據處理
  • 另一方面,方便之后復用

通過這個階段,你的目標:

  • 熟悉各個數據集的:數據結構、支持的任務、圖片大小、類別數
  • 數據讀取庫:PIL、cv2
  • 自定義 DataSet :3個必要的函數的使用: init()getitem()len()
  • 數據處理,數據增強 : 進一步 了解 torchvision.transforms 的使用
  • Dataloader 的使用,各個參數的含義
  • 數據可視化庫:cv2、matplotlib

Step 3 : 玩轉 Resnet

通過這個階段的目標:

  • 完全理解 Resnet,以及 Resnet 的網絡特點,知道怎么將它作為 backbone 提取 feature map
  • 遷移學習的各種技巧:修改網絡,網絡加載參數、凍結參數
  • 了解一些基礎的 目標檢測、語義分割的理論知識
  • 圖像預處理/圖像增強的技巧:針對不同任務,圖像預處理/圖像增強需要注意的點

Resnet 是最常用的 backbone,玩轉它很有必要,學習內容:

  • 學習 Resnet 理論知識、臨摹 Resnet 網絡搭建
  • 在 Resnet 的基礎上做遷移學習,再去學習一個以 Resnet 為 backbone 的網絡
    • 圖像分類:直接在 Resnet 網絡上做修改,去訓練一些 常用數據集(圖像尺寸不易太小)
    • 目標檢測:以 ResNet 為 backbone 的 YOLO v3
    • 語義分割:以 ResNet 為 backbone 的 FCN
  • 有時間再去學習一下 U-net 網絡,對你網絡搭建技巧有很大的幫助

Step 4 : 學習你研究方向相關的經典網絡

比如 :Faster-RCNN、SSD、YOLO系列、self-attention

  • 學習你研究方向的 理論知識
    • 比如,什么是 one-stage,什么是 two-stage
    • 比如,end-to-end 的方法需要我們輸出包括哪些內容
    • 比如,目標檢測任務的目標是什么,圖像分割任務的目標是什么
    • 比如,目標檢測任務的評價指標 mAP 怎么計算,圖像分割任務的評價指標是那幾個
    • 比如,什么是 self- attention,什么是 cross-attention;
  • 提升代碼能力,復現代碼的時候,看到不了解的代碼行,代碼塊,記錄下來,去查資料學習,整理為自己的學習筆記。

算法學習流程

(1)先找1~2個 點贊多的視頻 或者 博客看,了解一下算法的背景,做了啥,重點思想是什么
(2)然后去看論文,根據 abstract 部分,了解作者提出了哪些創新點;算法部分會仔細的看(一般是第3節、第4節),以及論文中貼出來的每張圖 也會仔細的看
(3)再回頭多找幾個 博客或者視頻看,看大家的理解是什么
(4)需要了解算法細節的,就翻代碼,一邊看一邊隨手畫畫數據處理流程圖,幫助理清思路
(5)了解數據處理過程之后,再回頭自己思考背后的思想,這么做的用意是什么,
(6)有覺得以后能用得上的代碼,就整理到自己的代碼庫中,方便以后 control c + control v
(7)有需要就再多翻一翻論文,論文中總有 別人博客中沒有提及到的細節
(8)看代碼可以和看書一樣,多看幾遍,第一遍不需要多細,大概看個結構,一遍比一遍往細了看

想復現 卻找不到源碼

完美復現是一件非常非常困難的事情

1、github

  • 通過算法關鍵詞搜索
  • 去各個作者的倉庫中查看
  • 去 issue 中提問

2、paper with code 里面可能會有相關代碼

3、kaggle 找相關數據集,看與這個數據集 相關的代碼中是否有可參考代碼。

4、其他方式 :

  • 在 stackoverflow 或其他平臺進行提問
  • 如果是系列代碼,去查看同系列其他代碼
  • 給作者發郵件,去要代碼
  • 問師兄師姐
  • 找相關方向的群組,群組內提問

如何僅下載GitHub項目的部分文件

1、Downgit
Downgit 地址 : https://minhaskamal.github.io/DownGit/#/home

將倉庫中,需要下載的那一部分的根目錄地址,粘貼到 DownGit,然后 download 即可

在這里插入圖片描述
2、GitZip for github

GitZip for github 是 Chrom瀏覽器中的插件, 安裝地址: https://chrome.google.com/webstore/detail/gitzip-for-github/ffabmkklhbepgcgfonabamgnfafbdlkn/related
在這里插入圖片描述

用 Chrom 瀏覽器打開 Github 中的某目標倉庫,倉庫中的 文件/文件夾前面,就會顯示出一個 checkbox,選中要下載的 文件/文件夾, 在右下角點擊加載即可。
在這里插入圖片描述

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

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

相關文章

在 uni-app 中進行路由跳轉前的權限驗證(檢查用戶是否登錄)

使用場景: 適用于需要登錄才能訪問的 uni-app 應用保護需要認證的頁面不被未授權用戶訪問統一處理路由跳轉的權限控制 /utils/cookies.js下的部分代碼內容: // #ifdef H5 import Cookies from js-cookie // #endif// ums const tokenKey user_center_to…

垃圾收集器ParNewCMS與底層三色標記算法詳解

垃圾收集技術詳解筆記 1. 分代收集理論 當前虛擬機的垃圾收集采用分代收集算法,根據對象存活周期將內存分為不同代區,以優化回收效率。 核心分區: 新生代(Young Generation):對象存活周期短,約9…

全排列(回溯算法)

本文參考代碼隨想錄 給定一個 沒有重復 數字的序列,返回其所有可能的全排列。 示例: 輸入: [1,2,3] 輸出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 思路 排列是有序的,在排列問題中不需要startIndex;但排列問題需要一個…

在線任意長度大整數計算器

具體請前往:在線大整數計算器--支持超大整數的加減乘除,冪運算/模運算,最大公約數,最小公倍數

AT6668B芯片說明書

這顆北斗專用單芯片解決方案AT6668B,采用射頻前端與基帶處理一體化設計,集成北斗二號/三號雙模B1IB1C信號處理器。通過優化星歷解碼算法實現秒級衛星鎖定,配合硬件加速的干擾監測模塊,在電磁環境復雜的應用場景中仍可維持10Hz高頻…

谷歌Chrome瀏覽器安裝插件

因為google瀏覽器的應用市場(https://chrome.google.com/webstore/category/extensions)在國內無法訪問,所以無法在線安裝插件,這里提供開發者模式離線安裝插件的方法。 1、下載crx腳本 谷歌瀏覽器的插件離線文件的擴展名為:crx(Firefox火狐瀏覽器的插件擴展名為fpi)。…

【制造】erp和mes系統建設方案(word)

第一部分 概述 第二部分 方案介紹 第三部分 系統業務流程 3.1 關鍵需求概括分析 3.1.1 銷售管理方面 3.1.2 采購管理方面 3.1.3 倉庫管理方面 3.1.4 財務管理方面 3.1.5 人力資源方面 3.2 關鍵需求具體分析 3.2.1 財務管理 3.2.1.1會計憑證解決 3.2.1.2鈔票流…

Spring AI 系列之二十八 - Spring AI Alibaba-基于Nacos的prompt模版

之前做個幾個大模型的應用,都是使用Python語言,后來有一個項目使用了Java,并使用了Spring AI框架。隨著Spring AI不斷地完善,最近它發布了1.0正式版,意味著它已經能很好的作為企業級生產環境的使用。對于Java開發者來說…

IMAP電子郵件歸檔系統Mail-Archiver

簡介 什么是 Mail-Archiver ? Mail-Archiver 是一個用于從多個 IMAP 賬戶歸檔、搜索和導出電子郵件的 web 應用程序。它提供了一種全面的解決方案,幫助用戶管理和存儲電子郵件。 主要特點 📌自動歸檔:自動歸檔進出郵件&#xff…

李宏毅深度學習教程 第6-7章 自注意力機制 + Transformer

強烈推薦!臺大李宏毅自注意力機制和Transformer詳解!_嗶哩嗶哩_bilibili 目錄 1. 詞嵌入&問題情形 2. self-attention 自注意力機制 3. 自注意力的變形 3.1 多頭注意力(multi-head) 3.2 位置編碼 3.3 截斷自注意力&…

大模型幻覺的本質:深度=邏輯層次,寬度=組合限制,深度為n的神經網絡最多只能處理n層邏輯推理,寬度為w的網絡無法區分超過w+1個復雜對象的組合

大模型幻覺的本質:深度邏輯層次,寬度組合限制,深度為n的神經網絡最多只能處理n層邏輯推理,寬度為w的網絡無法區分超過w1個復雜對象的組合🧩 "深度邏輯層次"具體含義🔢 "寬度組合限制"具…

2419.按位與最大的最長子數組

Problem: 2419. 按位與最大的最長子數組 思路 子數組按位與的結果,不會超過子數組里的最大值(因為 a & b ≤ max(a, b))。 進一步推導,整個數組最大按位與的結果就是數組本身的最大值。 因為最大的那個元素自己作為子數組時&a…

智能時代:先管端點,再談效率

為什么需要統一端點管理?在混合辦公常態化、設備類型爆炸式增長的2025年,分散的端點如同散落各地的哨所。傳統管理方式讓IT團隊疲于應對系統更新、漏洞修復、權限分配等重復勞動,不僅消耗60%以上的運維時間,更可能因響應延遲導致安…

Windows字體simsum.ttf的安裝與Python路徑設置指南

下載工具: https://fontforge.org/en-US/downloads/windows-dl/ 使用工具: 復制到c:\windows\fonts路徑下面。 并復制到運行的python程序同一路徑下。比如:c:\pythoncode\new\

GitHub下載項目完整配置SSH步驟詳解

GitHub下載項目完整配置步驟(從零開始) 默認下好了git ,在文件夾中右鍵打開git bash , 如果沒有請在csdn搜索教程 第一步:檢查并清理現有SSH配置 # 進入.ssh目錄 cd ~/.ssh# 備份并刪除所有現有密鑰(避免沖…

數據結構(9)棧和隊列

1、棧 1.1 概念與結構 棧是一種特殊的線性表,只允許在固定的一端進行插入和刪除元素的操作。進行數據插入和刪除的一端稱為棧頂,另一端稱為棧底。棧里面的數據元素遵循后進先出的原則。棧的底層實現一般可以使用數組或者鏈表來實現,但數組的…

湖北大學暑期實訓優秀作品:面向美麗中國的數據化可視平臺

開發背景2024年1月11日,《中共中央國務院關于全面推進美麗中國建設的意見》發布,明確了建設美麗中國的總體要求、主要目標和重點任務,為我國生態文明建設提供了頂層設計和行動指南。系統簡介當前,中國正以空前的力度推進生態文明建…

Ubuntu系統VScode實現opencv(c++)隨機數與隨機顏色

在圖像處理與計算機圖形學中,隨機數與隨機顏色的生成常用于增強圖像的多樣性、可視化多個目標區域、模擬自然現象以及生成測試數據等任務。通過隨機化元素的顏色、位置或形狀,可以使程序在動態展示、調試輸出、以及數據增強等方面更加靈活和豐富。例如&a…

機器學習、深度學習與數據挖掘:三大技術領域的深度解析

基本概念與歷史沿革數據挖掘起源于20世紀90年代,是數據庫技術、統計學和機器學習交叉融合的產物。它經歷了從簡單查詢到復雜知識發現的演變過程,早期階段主要關注數據存儲和檢索,隨著IBM、微軟等公司的推動,逐漸形成了完整的知識發…

MoR vs MoE架構對比:更少參數、更快推理的大模型新選擇

Google DeepMind 近期發布了關于遞歸混合(Mixture of Recursion)架構的研究論文,這一新型 Transformers 架構變體在學術界和工業界引起了廣泛關注。該架構通過創新的設計理念,能夠在保持模型性能的前提下顯著降低推理延遲和模型規…