Detectron:Pytorch-Caffe2-Detectron的一些跟进
??????? pytorch官網(wǎng):http://pytorch.org/上只有PyTroch的ubuntu和Mac版本,赤裸裸地歧視了一把Windows低端用戶。
1. Caffe源碼:Caffe源碼理解之存儲(chǔ)??
Caffe2存儲(chǔ)
Caffe2中的存儲(chǔ)結(jié)構(gòu)層次從上到下依次是Workspace, Blob, Tensor。Workspace存儲(chǔ)了運(yùn)行時(shí)所有的Blob和實(shí)例化的Net。Blob可以視為對(duì)任意類型的一個(gè)封裝的類,比如封裝Tensor, float, string等等。Tensor就是一個(gè)多維數(shù)組,這個(gè)Tensor就類似于Caffe1中的Blob。Caffe2中真正涉及到分配存儲(chǔ)空間的調(diào)用則在Context中,分為CPUContext和CUDAContext。下面按照從下到上的順序分析一下Caffe2的存儲(chǔ)分配過(guò)程。
- Context
- Tensor
- Blob
- Workspace
- 總結(jié)?
總結(jié)
下面是Operator中從創(chuàng)建Blob到實(shí)際分配空間的流程,這個(gè)圖是怎么畫出來(lái)的呢:
????????
2.Caffe2 Detectron的使用初步
關(guān)于InferImage:
????? 在 NVIDIA Tesla P100 GPU 上,單張圖片的推斷時(shí)間大概是 130-140ms.當(dāng)然這與輸入圖像的參數(shù)設(shè)置size有關(guān)。
2. Detectron 訓(xùn)練
簡(jiǎn)單介紹在 COCO Dataset 上訓(xùn)練模型.
采用 ResNet-50-FPN Backbone 進(jìn)行 end-to-end 的 Faster R-CNN 訓(xùn)練.
這里簡(jiǎn)單進(jìn)行模型訓(xùn)練,小尺寸的輸入圖片,能夠使訓(xùn)練和推斷的速度相對(duì)較快.
2.1 單 GPU 訓(xùn)練
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 上,訓(xùn)練耗時(shí)大約 4.2 個(gè)小時(shí).
- M40 上,每張圖片的推斷時(shí)間大約是 80 ms.
- coco_2014_minival上的 Box AP 大約是 22.1%.
2.2 Multi-GPU 訓(xùn)練
Detectron 提供了基于2、4、8 張 GPUS 訓(xùn)練的 configs 參數(shù)配置文件.
如 configs/getting_started/tutorial_{2,4,8}gpu_e2e_faster_rcnn_R-50-FPN.yaml.
如,2 張 GPUs 的訓(xùn)練:
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 在訓(xùn)練結(jié)束后,采用 multiple GPUs (如NUM_GPUs 為 2) 進(jìn)行并行化推斷.
期望的結(jié)果:
- 訓(xùn)練在 2 張 M40 上大概耗時(shí) 2.3 個(gè)小時(shí).
- 推斷時(shí)間大約是 80 ms,在 2 張 GPUs 上并行推斷時(shí),耗時(shí)減半.
- coco_2014_minival上的 Box AP 大約是 22.1%.
關(guān)于學(xué)習(xí)方案的調(diào)整(“l(fā)inear scaling rule”),可以參考提供的 config 文件,閱讀論文 Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour.
除了這里,其它的 configs 都是基于 8 GPUs.
如果訓(xùn)練的 GPUs 少于 8,或者想嘗試改變 minibatch size,有必要理解如何根據(jù) linear scaling rule 來(lái)調(diào)整訓(xùn)練方案.
注:
這里的訓(xùn)練示例采用了相對(duì)低的 GPU-compute 模型,因此,Caffe2 Python op 的開銷相對(duì)較高. 導(dǎo)致將 GPUs 由 2 增加到 8 時(shí),開銷并不成比例減少,如采用 8 GPUs,需要訓(xùn)練 0.9 小時(shí),只比單張 GPU 快了 4.5x 倍.
當(dāng)采用相對(duì)高的 GPU-compute 模型時(shí),multi-GPUs 開銷的減少比例會(huì)提高.
3. 在Win10 中編譯安裝PyTorch
知乎文章:關(guān)于Windows PRs并入PyTorch的master分支
.......................................
開始編譯安裝
python setup.py install目前針對(duì)Windows的已修復(fù)項(xiàng):
目前Windows的已知問(wèn)題:
另外,大家一定很關(guān)心什么時(shí)候能出正式Windows正式版,日前,Soumith大神給出了他的回復(fù):
所以這次應(yīng)該還是見不到正式的Windows版本,但是各位可以期待到時(shí)候我的Conda包。
以上,就是文章的全部?jī)?nèi)容啦,如果感覺(jué)還意猶未盡的話,可以給我的Github 主頁(yè)或者項(xiàng)目加個(gè)watch或者star之類的(滑稽),以后說(shuō)不定還會(huì)再分享一些相關(guān)的經(jīng)驗(yàn)。
總結(jié)
以上是生活随笔為你收集整理的Detectron:Pytorch-Caffe2-Detectron的一些跟进的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: cf生化变异强化礼包里面有什么 CF和C
- 下一篇: Caffe: LMDB 及其数据转换