最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

pytorch通過(guò)訓(xùn)練結(jié)果的復(fù)現(xiàn)設(shè)置隨機(jī)種子

 更新時(shí)間:2021年06月01日 08:56:22   作者:tianren9  
這篇文章主要介紹了pytorch通過(guò)訓(xùn)練結(jié)果的復(fù)現(xiàn)設(shè)置隨機(jī)種子的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

通過(guò)設(shè)置全局隨機(jī)種子使得每次的訓(xùn)練結(jié)果相同可以復(fù)現(xiàn)

def seed_torch(seed=2018):
    random.seed(seed)
    os.environ['PYTHONHASHSEED'] = str(seed)
    np.random.seed(seed)
    torch.manual_seed(seed)
    torch.cuda.manual_seed(seed)
    torch.backends.cudnn.deterministic = True

這里我主要講一下模型在復(fù)現(xiàn)結(jié)果遇到的一些問(wèn)題。

首先在固定隨機(jī)種子之后,每次模型訓(xùn)練出來(lái)的結(jié)果一定是一樣的,如果不相同,那么說(shuō)明訓(xùn)練過(guò)程中一定還有一部分隨機(jī)性操作沒(méi)有被固定。

將模型參數(shù)保存下來(lái),然后加載模型參數(shù)進(jìn)行測(cè)試,如果發(fā)現(xiàn)結(jié)果和訓(xùn)練過(guò)程中得到的結(jié)果有差異。

這個(gè)時(shí)候就需要按照以下步驟進(jìn)行分析:

1、先改變batchsize,看看實(shí)驗(yàn)復(fù)現(xiàn)的結(jié)果是否會(huì)發(fā)生變化。如果發(fā)生變化就說(shuō)明batchsize會(huì)影響模型推理過(guò)程中的參數(shù)。

2、檢查一下forward中有哪些參數(shù)跟batchsize有關(guān),或者是不是代碼寫錯(cuò)了。比如batchsize就會(huì)影響LSTM的模型參數(shù)的初始化。

3、最后檢查測(cè)試集劃分batch的時(shí)候是否都一樣。

test_loader = DataLoader(test_dataset, batch_size=batchsize, shuffle=True, num_workers=4, pin_memory=True)

比如這樣一行代碼,測(cè)試集每次都被打亂了,雖然固定了隨機(jī)種子,但是這樣只能保證第k輪的隨機(jī)種子是一樣的,而第1輪和第10輪的隨機(jī)種子是不一樣的。

這樣的話,比如模型在第13個(gè)epoch收斂,得到的結(jié)果在是第13輪的測(cè)試集進(jìn)行測(cè)試的,而模型在加載的時(shí)候是在第一輪的測(cè)試進(jìn)行測(cè)試的,結(jié)果自然有差異。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

洛扎县| 南岸区| 鄄城县| 新郑市| 元谋县| 乐平市| 铜鼓县| 威远县| 赤城县| 茂名市| 扶绥县| 囊谦县| 漳州市| 思茅市| 朝阳市| 昌乐县| 凌云县| 宜兰县| 五大连池市| 万宁市| 广丰县| 镇康县| 新邵县| 镇沅| 定州市| 贵州省| 武陟县| 阳朔县| 石门县| 庆阳市| 隆安县| 安泽县| 桂平市| 财经| 诸暨市| 民乐县| 海阳市| 冕宁县| 牟定县| 洛川县| 龙岩市|