河北建設(shè)網(wǎng)站信息查詢中心seo優(yōu)化服務(wù)商
文章首發(fā)見(jiàn)博客:https://mwhls.top/4871.html。
無(wú)圖/格式錯(cuò)誤/后續(xù)更新請(qǐng)見(jiàn)首發(fā)頁(yè)。
更多更新請(qǐng)到mwhls.top查看
歡迎留言提問(wèn)或批評(píng)建議,私信不回。
沒(méi)解決,只是記錄這種情況。
也可以多次實(shí)驗(yàn)取均值以避免結(jié)果復(fù)現(xiàn)。
場(chǎng)景
- 自己的模塊中,包含一個(gè)與
x
相加的可學(xué)習(xí)參數(shù),導(dǎo)致單卡同種子下結(jié)果無(wú)法復(fù)現(xiàn)。- 去掉該模塊,能正常復(fù)現(xiàn)。
- 保留聲明,注釋使用后,能正常復(fù)現(xiàn)。且結(jié)果與無(wú)該模塊的結(jié)果一致。
- 除了在訓(xùn)練前設(shè)定種子外,我還在模塊內(nèi)部再次設(shè)置了種子,但依然無(wú)效。
相關(guān)代碼
def __init__(self):self.pos = torch.nn.Parameter(torch.zeros((1, 1, config.DATA.HEIGHT, config.DATA.WIDTH)))def set_seed(self):seed = 1random.seed(seed)np.random.seed(seed)torch.manual_seed(seed)torch.cuda.manual_seed(seed)torch.backends.cudnn.deterministic = Truetorch.backends.cudnn.benchmark = Falsedef forward(self, x):x += self.posreturn x
吐槽
- 在第一次增加后,性能增了1個(gè)點(diǎn),我還以為我nb起來(lái)了。
- 后來(lái)習(xí)慣性復(fù)現(xiàn)的時(shí)候,發(fā)現(xiàn)結(jié)果又變了。
- 調(diào)試幾天才發(fā)現(xiàn)是這個(gè)原因。
- 考慮的性能變好,大不了我多次實(shí)驗(yàn)取均值。
- 結(jié)果多次實(shí)驗(yàn)都掉了,再也回不去了。
- 所以也沒(méi)繼續(xù)解決。
- 值得一提的是,TransReID的代碼中,就是這么用的,但是它的結(jié)果就能復(fù)現(xiàn),咱們明明都設(shè)置種子了。下面是TransReID里用的。
self.pos_embed = nn.Parameter(torch.zeros(1, num_patches + 1, embed_dim))