使用google colab訓練YOLOv5模型

2021-02-14 迷途小書童的Note
軟硬體環境colab是什麼

colab是google提供的一個jupyter notebook工具,支持google drive、tensorflow在內的google全家桶,主要用於機器學習的開發和研究。colab最大的好處是給廣大的AI開發者提供免費的gpu資源,可以在上面非常輕鬆地運行如tensorflow、pytorch、keras等深度學習框架。

YOLOv5模型訓練

來到google drive,點擊左上方的New

colab_yolov5

創建一個新的文件夾colab

colab_yolov5

接下來,將準備好的口罩數據集上傳到colab文件夾中,這個數據集,前面我們在YOLOv5模型訓練的時候用過,可以到下面的地址下載

原始連結 https://public.roboflow.ai/object-detection/mask-wearing

CSDN下載 https://download.csdn.net/download/djstavaV/12624588

百度網盤 https://pan.baidu.com/s/15GSPiJ59dg4kNyUch6W5Xw, 提取碼:wja4

接下來創建colab,點擊New --> More --> Google Colaboratory

colab_yolov5

創建好notebook後,需要來到 修改 --> 筆記本設置 設置gpu加速

colab_yolov5

硬體加速器,選擇GPU,保存

colab_yolov5

點擊右上角的 連接,選擇 連接到託管代碼執行程序。

colab_yolov5

GPU環境設置好後,我們就可以在notebook中查看colab提供的gpu資源了,使用!nvidia-smi命令

colab_yolov5

可以看到google提供的硬體是是tesla P100,顯存是16G。貌似每次colab分配的gpu是不一樣的,有時候是P100,有時候是T4

下面看看pytorch的安裝情況,執行

import torch
torch.__version__

可以看到平臺已經默認安裝,且版本是1.6,CUDA的版本是10.1

colab_yolov5

colab_yolov5

如果需要安裝第三方庫,可以在單元格中直接安裝,如!pip3 install torchvision

colab_yolov5

接下來就把google drive掛載過來,這樣就可以在colab中使用google drive中的資源了

import os
from google.colab import drive
drive.mount('/content/drive')

path = "/content/drive/My Drive"

os.chdir(path)
os.listdir(path)

執行上述單元格中的代碼,會要求進行輸入驗證碼

colab_yolov5

colab_yolov5

google drive就會被掛載到目錄/content/drive,後續就可以對google drive裡的文件進行操作了

colab_yolov5

準備工作搞定好,我們就可以下載YOLOv5的源碼了,在單元格中執行

!git clone https://github.com/ultralytics/yolov5.git

然後切換到google drive,修改yolov5/models/yolov5s.yaml,將原來的nc: 80改為nc: 2

colab_yolov5

然後就可以來到colab,進入到yolov5目錄,在單元格中執行訓練命令

!python train.py --data ../mask/data.yaml --cfg models/yolov5s.yaml --weights '' --batch-size 64

訓練時,出現了pyyaml模塊的一個錯誤,這是由於pyyaml版本過低的原因,我們升級下就可以解決

pip install -U pyyaml

colab_yolov5

繼續訓練

colab_yolov5

colab_yolov5參考資料https://github.com/ultralytics/yolov5https://xugaoxiang.com/2020/07/02/yolov5-training/https://xugaoxiang.com/2020/06/17/yolov5/

相關焦點

  • yolov5訓練過程可視化
    我們介紹過yolov5已經在本地集成了Weights & Biases,也就是wandb,這樣就可以方便的追蹤模型訓練的整個過程,包括模型的性能、超參數、GPU的使用情況、模型預測,還有數據集。說到底,wandb就是個可視化的工具。
  • C++實現yolov5的OpenVINO部署
    [GiantPandaCV導語] 本文介紹了一種使用c++實現的,使用OpenVINO部署yolov5的方法。此方法在2020年9月結束的極市開發者榜單中取得後廚老鼠識別賽題第四名。2020年12月,注意到yolov5有了許多變化,對部署流程重新進行了測試,並進行了整理。希望能給需要的朋友一些參考,節省一些踩坑的時間。模型訓練1.
  • 乾貨 | YOLOv5在建築工地中安全帽佩戴檢測的應用
    五、增加數據集的分類該項目是使用 YOLOv5 v2.x 來訓練在智能工地安全領域中頭盔目標檢測的應用,先來一波演示!這裡選擇了 yolov5s 模型進行訓練,權重也是基於 yolov5s.pt 來訓練python train.py --img 640 --batch 16 --epochs 10 --data .
  • 最強幹貨實踐教程 | YOLOv5在建築工地中安全帽佩戴檢測的應用
    1.3 文件放置規範 1.4 聚類得出先驗框(可選) 1.5 選擇一個你需要的模型 1.6 開始訓練 1.7 看訓練之後的結果 二、偵測 三、檢測危險區域內是否有人 四、生成 ONNX 五、增加數據集的分類該項目是使用 YOLOv5 v2.x 來訓練在智能工地安全領域中頭盔目標檢測的應用
  • YOLO算法最全綜述:從YOLOv1到YOLOv5
    其他細節,例如使用激活函數使用leak RELU,模型用ImageNet預訓練等等優點通用性強。YOLO對於藝術類作品中的物體檢測同樣適用。它對非自然圖像物體的檢測率遠遠高於DPM和RCNN系列檢測方法。缺點由於輸出層為全連接層,因此在檢測時,YOLO訓練模型只支持與訓練圖像相同的輸入解析度。
  • 分享| YOLOv5 在最新 OpenVINO 2021R02 版本的部署與代碼演示詳解
    OpenVINO SDK+YOLOv5s 代碼演示上面我們已經成功轉換為 YOLOv5s 模型 IR,現在就可以基於最新的 SDK 來說完成調用解析與調用。 = 0; i < availableDevices.size(); i++) {    printf("supported device name : %s \n", availableDevices[i].c_str());}//  加載檢測模型auto network = ie.ReadNetwork("D:/python/yolov5/yolov5s.xml
  • YOLOv5在最新OpenVINO 2021R02版本的部署與代碼演示詳解
    /yolov5/yolov5s.xml", "D:/python/yolov5/yolov5s.bin");// auto network = ie.ReadNetwork("D:/python/yolov5/yolov5s.onnx");第二步:設置輸入與輸出格式,YOLOv5s輸入的圖像被歸一化到
  • YOLO之外的另一選擇,手機端97FPS的Anchor-Free目標檢測模型NanoDet現已開源~
    華為P30上用NCNN移植跑benchmark,每幀僅需10.23毫秒,比yolov4-tiny快3倍,參數量小6倍,COCO mAP(0.5:0.95)能夠達到20.6 。NanoDet檢測頭目前針對FPN的改進有許多,如EfficientDet使用了BiFPN,yolo v4和yolo v5使用了PAN,除此之外還有BalancedFPN等等。
  • 使用Detectron2分6步進行目標檢測
    然而,重要的是我們需要從頭開始構建一個模型,以理解其背後的數學原理。如果我們想使用自定義數據集快速訓練對象檢測模型,Detectron 2就可以提供幫助。Detectron 2庫的模型庫中存在的所有模型都在COCO Dataset上進行了預訓練。我們只需要在預先訓練的模型上微調我們的自定義數據集。Detectron 2完全重寫了2018年發布的第一款Detectron。
  • 谷歌發布NLP最先進預訓練模型:開源BERT
    然而,現代基於深度學習的NLP模型往往需要更大量的數據,在擁有在數以百萬計甚至十億計的帶標註的訓練樣例上進行訓練時性能將會得到極大改善。為了幫助縮小數據差距,研究人員開發了各種技術用於使用網絡上海量未標註的文本(稱為預訓練)來訓練通用語言表示模型。然後,將其應用於小數據NLP任務(如問答和情感分析)微調預訓練模型,與從頭對數據集進行訓練相比,使用預訓練模型可以顯著地提高準確度。
  • 【實戰】基於TensorRT 加速YOLO系列以及其他加速算法實戰與對比
    源碼,以及YOLOv5模型3:編譯tensorRT-v5生成engine4:測試模型官方的介紹是 Ubuntu16.04 / cuda10.0 / cudnn7.6.5 / tensorrt7.0.0對比下來實際上使用cpp版yolov5s 速度還是快了很多,大家可以嘗試使用yolov5x 來加速嘗試一下。如果你想改tensorRT 為640x640 ,那麼可以修改yololayer.h 中的20行左右input_H,input_W = 608為640。
  • 一張圖梳理YOLOv4論文
    pooling, 而是直接用一個卷積得到的特徵圖直接使用Sigmoid進行激活, 然後對應點相乘, 所以說改進後的模型是Point-wise Attention.並且在yolov4.cfg中沒有發現使用SAM的痕跡, 這非常奇怪..不知道作者將SAM用到了模型的哪個部分.
  • 學習記 | 復現YOLO-V1作業教程
    (由於時間和硬體限制原因,據CSDN大佬所言,1050Ti訓練需要1h到1.5h,此推文暫未對其正確性進行驗證,僅成功測試識別圖片。後續將會繼續更新有關訓練操作和基於Pytorch實現YOLO-V1,敬請期待!)1、下載安裝Anaconda。
  • 1.8M超輕量目標檢測模型NanoDet,比YOLO跑得快,上線兩天Star量超200
    目前開源的 NanoDet-m 模型在 320x320 輸入解析度的情況下,整個模型的 Flops 只有 0.72B,而 yolov4-tiny 則有 6.96B,小了將近十倍。模型的參數量也只有 0.95M,權重文件在使用 ncnn optimize 進行 16 位存儲之後,只有 1.8mb。儘管模型非常的輕量,但是它的性能不容小覷。
  • 1.8M 超輕量目標檢測模型 NanoDet,比 YOLO 跑得快,上線兩天 Star 量超 200
    目前開源的 NanoDet-m 模型在 320x320 輸入解析度的情況下,整個模型的 Flops 只有 0.72B,而 yolov4-tiny 則有 6.96B,小了將近十倍。模型的參數量也只有 0.95M,權重文件在使用 ncnn optimize 進行 16 位存儲之後,只有 1.8mb。儘管模型非常的輕量,但是它的性能不容小覷。
  • 使用 Cloud TPU 在 30 分鐘內訓練並部署實時移動物體探測器
    在這篇文章中,我們將引導您使用遷移學習在 Cloud TPU 上訓練量化的寵物品種檢測器。整個過程 - 基於 Android 設備從訓練到推理 - 需要 30 分鐘,Google Cloud 的成本不到5美元。
  • YOLO-LITE來了(含論文精讀和開原始碼)
    接著向下看註:文末附網絡模型和預訓練權重YOLO-LITEYOLO-LITE是一種實時目標檢測模型,可用於可攜式設備,如缺少圖形處理單元(GPU)的筆記本電腦或手機該模型在PASCAL VOC數據集和COCO數據集上訓練,分別達到33.81%和12.26%的mAP。YOLO-LITE僅有7層和4.82億FLOPS,其在非GPU計算機上以大約21 FPS運行,在網頁上以10 FPS運行。這個速度比最SOTA的SSD Mobilenet v1快3.8倍。
  • PyTorch版YOLOv4更新了,不僅適用於自定義數據集,還集成了注意力和MobileNet
    從今年 4 月 YOLOv4 發布後,對於這個目標檢測框架,問的最多的問題或許就是:「有沒有同學復現 YOLOv4 的, 可以交流一下麼」。由於原版 YOLO 使用 C 語言進行編程,光憑這一點就讓不少同學望而卻步。網上有很多基於 TF/Keras 和 Caffe 等的復現版本,但不少項目只給了代碼,並沒有給出模型在 COCO、PASCAL VOC 數據集上的訓練結果。
  • 基於Yolo-V3對衛星圖像進行儲油罐容積佔用率的研究
    在本文,我們將使用Tensorflow2.x框架,在衛星圖像的幫助下,使用python從零開始實現一個完整的模型來估計儲油罐的佔用量。list=PL1GQaVhO4f_jE5pnXU_Q4MSrIQx4wpFLM&v=e4G9H18VYmA2.現有方法Karl Keyer [1]在他的存儲庫中使用RetinaNet來完成儲油罐探測任務。他從頭開始創建模型,並將生成的錨框應用於該數據集,他的研究使得浮頂罐的平均精度(AP)達到76.3%,然後他應用陰影增強和像素閾值法來計算它的體積。