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
,normalizeimage
andpermute
。
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就是屬性或方...