最近在訓(xùn)練deepinsight/insightface 的時(shí)候遇到一個(gè)問(wèn)題粘驰,官方提供的設(shè)置是batchsize 128, 而我的機(jī)器內(nèi)存不夠,只能設(shè)為64來(lái)訓(xùn)練待侵,但是batch_size不一樣對(duì)最終訓(xùn)練的結(jié)果是有一部分影響的。為了達(dá)到最佳效果,就要解決out of memory的問(wèn)題厨幻,怎么辦呢?于是發(fā)現(xiàn)了這個(gè):dmlc/mxnet-memonger
使用方法
使用方法非常簡(jiǎn)單腿时,下載該github項(xiàng)目中的 memonger.py, 將其放到訓(xùn)練代碼同文件夾下况脆,然后在訓(xùn)練代碼中添加memonger.search_plan:
import memonger
net = my_symbol() net_planned = memonger.search_plan(net)
# 之后的部分和之前一樣就可以了
model = mx.FeedForward(net_planned, ...)
model.fit(...)
效果
我在insightface中加了memonger后,之前訓(xùn)練64的batchsize需要10G內(nèi)存批糟,現(xiàn)在訓(xùn)練128的batch也只要8G內(nèi)存了,而且格了,128的batch_size效果的確比64好..