日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Detectron:Pytorch-Caffe2-Detectron的一些跟进

發布時間:2023/12/31 146 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Detectron:Pytorch-Caffe2-Detectron的一些跟进 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??????? pytorch官網:http://pytorch.org/上只有PyTroch的ubuntu和Mac版本,赤裸裸地歧視了一把Windows低端用戶。

1. Caffe源碼:Caffe源碼理解之存儲??

Caffe2存儲

Caffe2中的存儲結構層次從上到下依次是Workspace, Blob, Tensor。Workspace存儲了運行時所有的Blob和實例化的Net。Blob可以視為對任意類型的一個封裝的類,比如封裝Tensor, float, string等等。Tensor就是一個多維數組,這個Tensor就類似于Caffe1中的Blob。Caffe2中真正涉及到分配存儲空間的調用則在Context中,分為CPUContext和CUDAContext。下面按照從下到上的順序分析一下Caffe2的存儲分配過程。

  • Context
  • Tensor
  • Blob
  • Workspace
  • 總結?

總結

下面是Operator中從創建Blob到實際分配空間的流程,這個圖是怎么畫出來的呢:


????????



2.Caffe2 Detectron的使用初步

關于InferImage:

????? 在 NVIDIA Tesla P100 GPU 上,單張圖片的推斷時間大概是 130-140ms.當然這與輸入圖像的參數設置size有關。

2. Detectron 訓練

簡單介紹在 COCO Dataset 上訓練模型.

采用 ResNet-50-FPN Backbone 進行 end-to-end 的 Faster R-CNN 訓練.

這里簡單進行模型訓練,小尺寸的輸入圖片,能夠使訓練和推斷的速度相對較快.

2.1 單 GPU 訓練

python2 tools/train_net.py \--cfg configs/getting_started/tutorial_1gpu_e2e_faster_rcnn_R-50-FPN.yaml \ OUTPUT_DIR /tmp/detectron-output
  • 輸出保存路徑 /tmp/detectron-output,如 models, validation set detections 等.
  • Maxwell GPU,如 M40 上,訓練耗時大約 4.2 個小時.
  • M40 上,每張圖片的推斷時間大約是 80 ms.
  • coco_2014_minival上的 Box AP 大約是 22.1%.

2.2 Multi-GPU 訓練

Detectron 提供了基于2、4、8 張 GPUS 訓練的 configs 參數配置文件.

如 configs/getting_started/tutorial_{2,4,8}gpu_e2e_faster_rcnn_R-50-FPN.yaml.

如,2 張 GPUs 的訓練:

python2 tools/train_net.py \--multi-gpu-testing \ --cfg configs/getting_started/tutorial_2gpu_e2e_faster_rcnn_R-50-FPN.yaml \ OUTPUT_DIR /tmp/detectron-output

--multi-gpu-testing是告訴 Detectron 在訓練結束后,采用 multiple GPUs (如NUM_GPUs 為 2) 進行并行化推斷.

期望的結果:

  • 訓練在 2 張 M40 上大概耗時 2.3 個小時.
  • 推斷時間大約是 80 ms,在 2 張 GPUs 上并行推斷時,耗時減半.
  • coco_2014_minival上的 Box AP 大約是 22.1%.

關于學習方案的調整(“linear scaling rule”),可以參考提供的 config 文件,閱讀論文 Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour.

除了這里,其它的 configs 都是基于 8 GPUs.

如果訓練的 GPUs 少于 8,或者想嘗試改變 minibatch size,有必要理解如何根據 linear scaling rule 來調整訓練方案.

注:

這里的訓練示例采用了相對低的 GPU-compute 模型,因此,Caffe2 Python op 的開銷相對較高. 導致將 GPUs 由 2 增加到 8 時,開銷并不成比例減少,如采用 8 GPUs,需要訓練 0.9 小時,只比單張 GPU 快了 4.5x 倍.

當采用相對高的 GPU-compute 模型時,multi-GPUs 開銷的減少比例會提高.

3. 在Win10 中編譯安裝PyTorch

知乎文章:關于Windows PRs并入PyTorch的master分支

.......................................

開始編譯安裝

python setup.py install

目前針對Windows的已修復項:

  • 在backward過程中拋出異常會導致死鎖 PR 2941
  • 在Dataloader開多線程時,會存在內存泄漏 PR 2897
  • torch.cuda下的一個縮進bug PR 2941
  • 增加對新 CUDA 和 cuDNN 版本的支持 PR 2941
  • 目前Windows的已知問題:

  • 部分測試會遇到權限不足問題 PR 3447
  • 分布式 torch.distributed 和 多顯卡 nccl 不支持
  • python 3.5 以下的版本不支持
  • 多線程的使用方式與 Unix 不同,對于DataLoader的迭代過程一定要使用如下代碼做保護。如遇到多線程下的問題,請先將num_worker設置為0試試是否正常。
  • if __name__ == '__main__':

    另外,大家一定很關心什么時候能出正式Windows正式版,日前,Soumith大神給出了他的回復:


    所以這次應該還是見不到正式的Windows版本,但是各位可以期待到時候我的Conda包。

    以上,就是文章的全部內容啦,如果感覺還意猶未盡的話,可以給我的Github 主頁或者項目加個watch或者star之類的(滑稽),以后說不定還會再分享一些相關的經驗。




    總結

    以上是生活随笔為你收集整理的Detectron:Pytorch-Caffe2-Detectron的一些跟进的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。