日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人工智能 > Caffe >内容正文

Caffe

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

發(fā)布時(shí)間:2023/12/31 Caffe 122 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Detectron:Pytorch-Caffe2-Detectron的一些跟进 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

??????? 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):

  • 在backward過(guò)程中拋出異常會(huì)導(dǎo)致死鎖 PR 2941
  • 在Dataloader開多線程時(shí),會(huì)存在內(nèi)存泄漏 PR 2897
  • torch.cuda下的一個(gè)縮進(jìn)bug PR 2941
  • 增加對(duì)新 CUDA 和 cuDNN 版本的支持 PR 2941
  • 目前Windows的已知問(wèn)題:

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

    另外,大家一定很關(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)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。