五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

第二十四篇—模型中的parameter和buffer

2023-03-31 18:12 作者:YouOnly_LiveOnce  | 我要投稿

部分一:模型保存

模型保存方式:

模型加載方式:

保存的內(nèi)容是model.state_dict()的返回對(duì)象,是一個(gè)OrderedDict,以鍵值對(duì)(key-val)的形式包含模型中需要保存下來的參數(shù),如:

打印模型:

打印模型參數(shù):



部分二:模型中的parameter和buffer

parameter在反向傳播時(shí)會(huì)被optimizer.step更新,而buffer在反向傳播時(shí)不會(huì)被更新;

parameter和buffer都保存在model.state_dict()返回的OrderedDict對(duì)象中;

模型進(jìn)行設(shè)備移動(dòng)時(shí),模型中注冊(cè)的參數(shù)(parameter和buffer),即model.state_dict()中的內(nèi)容會(huì)同時(shí)進(jìn)行移動(dòng)。

創(chuàng)建parameter和buffer

創(chuàng)建parameter:

方法一:直接將模型的成員變量self.xxx通過nn.Parameter()創(chuàng)建,會(huì)自動(dòng)注冊(cè)到model.parameters()中;

方法二:先通過nn.Parameter()創(chuàng)建普通的parameter對(duì)象,此時(shí)該對(duì)象不作為模型的成員變量,然后將parameter對(duì)象通過register_parameter()注冊(cè)到model.parameters()中;


創(chuàng)建buffer:

通過register_buffer()注冊(cè)到model.buffers()中;


注意一:parameter和buffer都保存在model.state_dict()中,舉例如下:

結(jié)果如下:


注意二:需要進(jìn)行梯度更新的模型參數(shù)屬于parameter,而不是buffer中。實(shí)際上,parameter的創(chuàng)建在torch.nn.Linear類中的__init__函數(shù)中完成,成員變量weight和bias都屬于parameter對(duì)象,并在這里進(jìn)行了初始化,__init__函數(shù)如下圖:

代碼舉例:

打印結(jié)果:

parameter在反向傳播時(shí)會(huì)被optimizer.step更新,而buffer在反向傳播時(shí)不會(huì)被更新,舉例如下:

結(jié)果如下(buffer不變;parameter更新):


注意三:數(shù)據(jù)轉(zhuǎn)換為buffer的原因

原因一:parameter和buffer都保存在model.state_dict()返回的OrderedDict對(duì)象中,如果保存模型的方法是torch.save(model.state_dict(),PATH),那么類中普通成員數(shù)據(jù)如果不注冊(cè)為parameter或buffer,就不能被保存,因?yàn)橹挥衜odel.state_dict()中的內(nèi)容會(huì)被保存,即只保存parameter和buffer;

原因二:模型進(jìn)行設(shè)備移動(dòng)時(shí),模型中注冊(cè)的參數(shù)(parameter和buffer),即model.state_dict()中的內(nèi)容會(huì)同時(shí)進(jìn)行移動(dòng),而類中普通成員數(shù)據(jù)如果不注冊(cè)為parameter或buffer,就不能被移動(dòng),如下所示:

結(jié)果如下(只有model.state_dict()中的內(nèi)容,即parameter和buffer,轉(zhuǎn)移到了GPU;而普通成員變量沒被轉(zhuǎn)移,仍在CPU上):


第二十四篇—模型中的parameter和buffer的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
泰和县| 香河县| 兴仁县| 基隆市| 嫩江县| 古丈县| 肇源县| 安阳县| 无锡市| 霍山县| 韶山市| 昌乐县| 十堰市| 吴江市| 绩溪县| 郓城县| 沙河市| 旺苍县| 广昌县| 宜城市| 广平县| 凭祥市| 兖州市| 大化| 九龙坡区| 富阳市| 河津市| 平昌县| 逊克县| 淮北市| 乾安县| 武城县| 景洪市| 兴城市| 扶沟县| 上犹县| 故城县| 海宁市| 临潭县| 教育| 霍林郭勒市|