<label id="jgr5k"></label>
    <legend id="jgr5k"><track id="jgr5k"></track></legend>

    <sub id="jgr5k"></sub>
  1. <u id="jgr5k"></u>
      久草国产视频,91资源总站,在线免费看AV,丁香婷婷社区,久久精品99久久久久久久久,色天使av,无码探花,香蕉av在线
      您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
      此為臨時鏈接,僅用于文章預覽,將在時失效
      人工智能開發者 正文
      發私信給AI研習社-譯站
      發送

      1

      Github代碼實踐:Pytorch實現的語義分割器

      本文作者: AI研習社-譯站 2018-05-03 14:27
      導語:通過這個代碼,你可以根據草圖訓練模型或者通過使用Detectron中得到預訓練權重(*.pk)來進行推斷。

      雷鋒網按:本文為雷鋒字幕組編譯的Github項目,原標題A Pytorch Implementation of Detectron,作者為 roytseng-tw。

      翻譯 | 楊婉迪  陳明霏    整理 |  凡江

      Github代碼實踐:Pytorch實現的語義分割器

      使用Detectron預訓練權重輸出 *e2e_mask_rcnn-R-101-FPN_2x* 的示例

      Github代碼實踐:Pytorch實現的語義分割器

      從Detectron輸出的相關示例

      Github代碼實踐:Pytorch實現的語義分割器

      使用Detectron預訓練權重輸出 *e2e_keypoint_rcnn-R-50-FPN_s1x*的示例

      這個代碼是按照Detectron的安裝架構來實現的,僅支持部分功能性,你可以通過點擊此鏈接來獲取更多相關信息。

      通過這個代碼,你可以……

      1. 根據草圖訓練模型;

      2. 通過使用Detectron中得到預訓練權重(*.pk)來進行推斷;

      這個儲存器最早是建在jwyang/faster-rcnn.pytorch上的,但是經過多次的修改,這個結構已經變了很多了而且現在更類似于Detectron。為了直接從正式的預訓練權重文件中重新得到結果,我刻意將所有東西弄得和Detectron的運行方法相似或者一致了。

      這個工具有以下特征:

      • 這個完全是Pytorch代碼,當然了,也有一些CUDA代碼。

      • 它支持多圖像的批處理加工訓練。

      • 它支持多GPUs 訓練。

      • 它支持三種合并方法,但是需要注意的是只有roi align能被改進去匹配 Caffe2的安裝。所以,盡管去用就好了。

      • 它可以高效利用內存。對于數據的批處理,這兒有兩種可選擇的技術去減少顯存使用量:1)根據類別分組:同批次的一組圖像是有相似的類別比率 2)根據類別剪裁:剪裁圖像太長了。 類別分組是在Detectron運行,所以用來默認,類別剪裁是來自jwyang/faster-rcnn.pytorch,所以它不能用來默認。

      除此之外,我提供一個定制化的模型nn.DataParallel ,它能夠使不同批次混亂的型號出現在不同的繪圖處理器上。你可以在My nn.DataParallel 這節找到更多關于這個的詳細內容。

      支持的網絡模型

      • 主要架構:

      ResNet series: ResNet50_conv4_body, ResNet50_conv5_body, ResNet101_Conv4_Body, ResNet101_Conv5_Body, ResNet152_Conv5_Body

      FPN: fpn_ResNet50_conv5_body, fpn_ResNet50_conv5_P2only_body, fpn_ResNet101_conv5_body,fpn_ResNet101_conv5_P2only_body, fpn_ResNet152_conv5_body, fpn_ResNet152_conv5_P2only_body

      • ResNeXt也被運行了但是還沒有測試。

      • Box head: ResNet_roi_conv5_head, roi_2mlp_head

      • Mask head: mask_rcnn_fcn_head_v0upshare, mask_rcnn_fcn_head_v0up, mask_rcnn_fcn_head_v1up4convs, mask_rcnn_fcn_head_v1up

      • Keypoints head: roi_pose_head_v1convX

      注意:這個命名和那個用在Detectron的是相似的。只是刪掉前置的add_,如果有的話。

      支持的數據集

      現在只有COCO是被支持的。但是,整個數據集庫運行幾乎是和 Detectron的是一樣的,所以用Detectron支持添加更多的數據集是很簡單的。

      配置選擇

      架構單一明確的配置文件是放在configs下的。 一般的配置文件lib/core/config.py里所有的選項都基本是和Detectron相同的默認值。所以把架構單一的configs轉化到Detectron是非常輕松的。

      怎樣把配置文件從Detectron轉化出來

      1. 刪除 MODEL.NUM_CLASSES 。在JsonDataset初賦值過程中被設置。

      2. 刪除 TRAIN.WEIGHTS,TRAIN.DATASETS 和TEST.DATASETS。

      3. 在模型類型的選擇中, 

      (比如: MODEL.CONV_BODY,FAST_RCNN.ROI_BOX_HEAD ……) 如果在數串中存在 add_,則將其刪除。

      4. 如果想給模型加載更多的ImageNet 預訓練權重,添加指向預訓練權重文件的RESNETS.IMAGENET_PRETRAINED_WEIGHTS 。如果沒有就把MODEL.LOAD_IMAGENET_PRETRAINED_WEIGHTS設置成 False

       更多的細節

      一些選項是不能使用的因為相關的功能性還沒有實現。但是有一些不能被使用的原因是我用不同方法安裝了程序。

      這里有一些沒有影響但值得注意的選項:

      • SOLVER.LR_POLICY, SOLVER.MAX_ITER, SOLVER.STEPS,SOLVER.LRS :就目前情況,訓練指令被這些命令行參數控制:

      --epochs:要訓練多少 epochs 。一個 epoch意味著要遍歷整個訓練集并且將默認值設為6。

      --lr_decay_epochs:每一epochs都是衰減學習率的。 衰減是發生在每個 epoch的開始。 Epoch 是 以0索引開始的,默認值是 [4, 5]。

      要獲得更多地命令行參數,請參考python train_net.py --help

      • SOLVER.WARM_UP_ITERS, SOLVER.WARM_UP_FACTOR, SOLVER.WARM_UP_METHOD: 在紙上做預熱訓練Accurate,Large Minibatch SGD:在一小時內訓練 ImageNet 是不能被運行的。

      • OUTPUT_DIR :使用命令行參數來代替--output_base_dir 去明確化輸出目錄。

      當更多地選項被提供:

      • MODEL.LOAD_IMAGENET_PRETRAINED_WEIGHTS = True:是否載入 ImageNet的預訓練權重。

        RESNETS.IMAGENET_PRETRAINED_WEIGHTS = '':預訓練網絡的權重文件路徑。如果是以 '/' 開始的,那它就是一個絕對路徑。否則就會被當作是一個和ROOT_DIR相關的路徑。

      • TRAIN.ASPECT_CROPPING = False, TRAIN.ASPECT_HI = 2,TRAIN.ASPECT_LO = 0.:根據類別選項的剪裁去限制圖像類別比率范圍的選項。 

      • RPN.OUT_DIM_AS_IN_DIM = True,RPN.OUT_DIM = 512 ,RPN.CLS_ACTIVATION = 'sigmoid' :RPN的正式運行有相同的輸入和輸出特征通道,它們使用sigmoid作為激活函數作為對fg/bg class類的輸出預測,在jwyang's implementation,它把輸出路徑數字確定為512而且使用softmax為激活函數。

      我的nn.DataParallel

      TBA

      開始

      克隆這個倉庫:

      git clone https://github.com/roytseng-tw/mask-rcnn.pytorch.git

      命令

      在 python3下測試。

      • python安裝包

      pytorch==0.3.1 (cuda80, cudnn7.1.2)

      torchvision==0.2.0

      numpy

      scipy

      opencv

      pyyaml

      pycocotools —  COCO數據集專用,也可以通過 pip安裝。

      tensorboardX —可以在Tensorboard上記錄losses。

      • 一個 NVIDAI GPU 和 CUDA 8.0 或者更高。一些操作只有gpu 安裝。

      • 注意:不同版本的 Pytorch安裝包有不同的顯存使用量。

      編寫

      編寫CUDA代碼:

      cd lib  # please change to this directory

      sh make.sh

      如果你在使用 Volta GPU, 在lib/mask.sh 文件中取消注釋這一句并且記住在上面這行后打上一個反斜杠。CUDA_PATH 路徑默認為/usr/loca/cuda 。如果你想要在不同路徑下使用CUDA庫,根據實際情況改變這行語句。

      這條語句將會編譯你需要的所有模塊,包括NMS、 ROI_Pooing、ROI_Crop 和 ROI_Align模塊。 (事實上GPU NMS模塊從未被使用過...)

      特別注意的是,如果你使用CUDA_VISIBLE_DEVICES 來設置GPU,確保在編譯代碼的時候至少有一個GPU可見。

      數據準備

      在repo下創建一個數據文件夾,

      cd {repo_root}

      mkdir data

      • COCO:下載coco圖片數據 以及從coco網站上獲得的注釋

      確保根據下面的文件結構將文件放置好:

      coco

      ├── 注釋

      |   ├── instances_minival2014.json

      │   ├── instances_train2014.json

      │   ├── instances_train2017.json

      │   ├── instances_val2014.json

      │   ├── instances_val2017.json

      │   ├── instances_valminusminival2014.json

      │   ├── person_keypoints_train2014.json

      │   ├── person_keypoints_train2017.json

      │   ├── person_keypoints_val2014.json

      │   └── person_keypoints_val2017.json

      └── 圖片

          ├── train2014

          ├── train2017

          ├── val2014

          └── val2017

      下載instances_minival2014.jsoninstances_valminusminival2014.json的鏈接

      隨便將數據集放在任意想放的地方,然后將數據集軟連接到data/ 文件夾下:

      ln -s path/to/coco data/coco

      推薦將圖片輸入SSD網絡來使訓練效果更加好。

      根據我的經驗來看, COCO2014針對相關的圖片數據有一些不同尺寸(h,w)的掩碼注釋。可能 instances_minival2014.jsoninstances_valminusminival2014.json 包含了錯誤的掩碼注釋。然而COCO2017 數據集并沒有這個問題.。據說 COCO train2017數據集 與 (COCO train 2014 + COCO minival 2014)相當 ,并且 COCO test 2017數據集 與COCO valminusminival 2014數據集相當。 因此,使用 COCO 2017 訓練-驗證切分集來重做結果是可以的。

      預訓練模型

      我使用ImageNet數據在 Caffe中為骨干網絡預訓練權重。

      下載它們并把它們放在 {repo_root}/data/pretrained_model路徑下。

      你可以使用下面的命令行語句將它們全部下載下來:

      - 額外需要的安裝包:argparse_color_formater, colorama

      python tools/download_imagenet_weights.py

      : Caffe的預訓練權重比Pytorch 預訓練的效果要稍好一些。我們使用Caffe 預訓練上面鏈接的模型來重做結果。順便提一點,Detectron(一個開源目標檢測庫)也使用Caffe預訓練得到的權重。

      如果你想用pytorch預訓練模型,請記住將圖片數據從BGR矩陣轉化為RGB矩陣,并且也用pytorch預訓練模型過程中相同的數據處理方法(去均值以及標準化)。

      訓練

      • 基于res50骨干網絡從頭開始訓練mask-rcnn網絡

      python tools/train_net.py --dataset coco2017 --cfg configs/e2e_mask_rcnn_R-50-C4.yml --use_tfboard --bs {batch_size} --nw {num_workers}

      使用 --bs 來將默認的批處理規模 (例如8)改變為適合你GPU的合適值。類似地還有--nw(數據加載線程在config.py中默認為4)。

      使用 —use_tfboard 在Tensorboard上展示損失函數的對數值。

      • 在每個訓練期結束的時候,通過完全相同的設置對訓練效果進行概括性展示。

      python tools/train_net.py --dataset coco2017 --cfg configs/e2e_mask_rcnn_R-50-C4.yml --resume --load_ckpt {path/to/the/checkpoint} --bs {batch_size}

       w/ 和 w/o --resume的區別:如果規定了--resume,優化器狀態將會被從 checkpoint文件中加載下來,否則將不會加載。

      • 訓練 keypoint-rcnn網絡

      python tools/train_net.py --dataset keypoints_coco2017 ...

      • Detectron預訓練權重的調整 

      python train_net.py --dataset coco2017 --cfg cfgs/e2e_mask_rcnn_R-50-C4.yml --load_detectron {path/to/detectron/weight} --bs {batch_size}

      注:優化器狀態 (SGD的動量) 沒有被加載(或被實現)。

      推斷結果

      python tools/infer_simple.py --dataset coco --cfg cfgs/e2e_mask_rcnn_R-50-C4.yml --load_detectron {path/to/detectron/weight} --image_dir {dir/of/input/images}  --output_dir {dir/to/save/visualizations}

      --output_dir 默認為infer_outputs。

      衡量標準

      keypoint_rcnn

      • e2e_keypoint_rcnn_R-50-FPN

      訓練命令行: python tools/train_net.py --dataset keypoints_coco2017 --cfg configs/e2e_keypoint_rcnn_R-50-FPN.yaml --bs 8

      以8張圖片為一個批訓練集,將數據集訓練6個周期,從第5個和第6個訓練周期開始后學習率以0.1倍速衰減。每個周期迭代 (113198 / 8) (向下取整)= 14149次。

      數據集: keypoints_coco_2017_val

      任務:框定盒

      Github代碼實踐:Pytorch實現的語義分割器

      任務:關鍵點

      表格中的值為Detectron e2e_keypoint_rcnn_R-50-FPN_1x網絡得到的AP值,該網絡以16張圖片為批訓練集迭代訓練90000次,在第60000次和第80000次迭代開始后學習率以0.1倍速衰減。

      可視化

      從頭開始基于coco_train_2017數據訓練 e2e_mask_rcnn_R-50_C4 網絡,以4張圖片為一批進行處理,訓練了1 個訓練周期:

      Github代碼實踐:Pytorch實現的語義分割器Github代碼實踐:Pytorch實現的語義分割器

      Github代碼實踐:Pytorch實現的語義分割器

      Github代碼實踐:Pytorch實現的語義分割器

      Github原址 https://github.com/roytseng-tw/Detectron.pytorch/blob/master/README.md

      雷鋒字幕組正在招募中,掃描下方二維碼,備注“雷鋒字幕組+姓名”加入我們。雷鋒網雷鋒網

       Github代碼實踐:Pytorch實現的語義分割器

      雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知

      Github代碼實踐:Pytorch實現的語義分割器

      分享:
      相關文章

      知情人士

      AI研習社(yanxishe.com)譯站頻道,傳播前沿人工智能知識,讓語言不再成為學習知識的門檻。(原雷鋒字幕組)
      當月熱門文章
      最新文章
      請填寫申請人資料
      姓名
      電話
      郵箱
      微信號
      作品鏈接
      個人簡介
      為了您的賬戶安全,請驗證郵箱
      您的郵箱還未驗證,完成可獲20積分喲!
      請驗證您的郵箱
      立即驗證
      完善賬號信息
      您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
      立即設置 以后再說
      主站蜘蛛池模板: 国产九九在线视频| 日本东京热不卡一区二区| 欧美黑人性暴力猛交喷水黑人巨大| 屄视频| 亚洲精品无码中文| 中文字幕 日韩 人妻 无码| 精品国产三级a| 香蕉乱码成人久久天堂爱| 久久精品成人无码观看不卡| 少妇特黄a一区二区三区| 人草逼视频频| 超碰?另类?国产| 丰满人妻被猛烈进入| 欧美人与zoxxxx另类| 亚洲精品天堂成人片AV在线播放| 国产成年码av片在线观看| 国产成年无码久久久久毛片| 彩票| 日本熟妇浓毛hdsex| 日日夜夜影院| 四虎永久在线精品免费播放 | 久久天天躁狠狠躁夜夜| 免费无码av片在线观看中文| AV资源站| 亚洲精品一区| 韩日一级| 亚洲伊人影院| 亚洲色无码| 影音先锋人妻啪啪av资源网站| 91资源站| 毛色444综合网| 免费无码高H视频在线观看| 99福利资源久久福利资源| 天美传媒mv免费观看完整 | www.18av| 成人影片在线观看网站18| 久久久久久AV| 日韩欧美+自拍| 人妻少妇久久中文字幕| 欧美国产日韩久久mv| 亚洲不卡av不卡一区二区|