PaddleDetection常見問題彙總

2021-10-23 08:49:33 字數 2087 閱讀 2899

q:為什麼我使用單gpu訓練loss會出nan?

a:預設學習率是適配多gpu訓練(8x gpu),若使用單gpu訓練,須對應調整學習率(例如,除以8)。

計算規則表如下所示,它們是等價的,表中變化節點即為piecewise decay裡的boundaries:

gpu數

學習率最大輪數

變化節點

20.0025

720000

[480000, 640000]

40.005

360000

[240000, 320000]

80.01

180000

[120000, 160000]

q:如何減少gpu視訊記憶體使用率?

a:可通過設定環境變數flags_conv_workspace_size_limit為較小的值來減少視訊記憶體消耗,並且不

會影響訓練速度。以mask-rcnn(r50)為例,設定export flags_conv_workspace_size_limit = 512

batch size可以達到每gpu 4 (tesla v100 16gb)。

q:如何修改資料預處理?

a:可在配置檔案中設定sample_transform。注意需要在配置檔案中加入完整預處理

例如rcnn模型中decodeimage,normalizeimageandpermute

q:affine_channel和batch norm是什麼關係?

a:在rcnn系列模型載入預訓練模型初始化,有時候會固定住batch norm的引數, 使用預訓練模型中的全域性均值和方式,並且batch norm的scale和bias引數不更新,已發布的大多resnet系列的rcnn模型採用這種方式。這種情況下可以在config中設定norm_type為bn或affine_channel, freeze_norm為true (預設為true),兩種方式等價。affne_channel的計算方式為scale * x + bias。只不過設定affine_channel時,內部對batch norm的引數自動做了融合。如果訓練使用的affine_channel,用儲存的模型做初始化,訓練其他任務時,既可使用affine_channel, 也可使用batch norm, 引數均可正確載入。

q:某些配置項會在多個模組中用到(如num_classes),如何避免在配置檔案中多次重複設定?

a:框架提供了__shared__標記來實現配置的共享,使用者可以標記引數,如__shared__ = ['num_classes'],配置數值作用規則如下:

如果模組配置中提供了num_classes,會優先使用其數值。

如果模組配置中未提供num_classes,但配置檔案中存在全域性鍵值,那麼會使用全域性鍵值。

兩者均為配置的情況下,將使用預設值(81)。

q:在配置檔案中設定use_process=true,並且執行報錯:not enough space for reason[failed to malloc 601 pages...

a:當前reader的共享儲存佇列空間不足,請增大配置檔案***.yml中的memsize,如memsize: 3g->memsize: 6g。或者配置檔案中設定use_process=false

Centos上VNC 啟動和關閉 常見問題彙總

1.重設密碼 root yqrh5u2 vncpasswd password verify root yqrh5u2 2.啟動和kill vncserver 手動kill 1,1的pid是12572,並驗證 1確實已經被kill 通過vncserver kill 1,2,這是最好的方法,推薦使用 3...

常見問題 朗動常見問題

常見問題一 方向盤變沉 檢查胎壓是否正常,輪胎是否過度磨損。助力幫浦不工作,前輪氣壓低。冬天的話,冷車在冬天助力油比較稠,方向會重一點。檢查轉向助力油。1 應該是是助力系統有問題或則助力潤滑油有問題。2 如果你在駕車時感覺方向盤變緊,汽車偏向一側,需要檢查輪胎,或進行車輪平衡 定位。在這些問題剛剛發...

面試常見問題 1 this的常見問題

this 的含義 this關鍵字是乙個非常重要的語法點。毫不誇張地說,不理解它的含義,大部分開發任務都無法完成。前一章已經提到,this可以用在建構函式之中,表示例項物件。除此之外,this還可以用在別的場合。但不管是什麼場合,this都有乙個共同點 它總是返回乙個物件。簡單說,this就是屬性或方...