国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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ó)家法律
上饶市| 即墨市| 金堂县| 阳城县| 横山县| 吴桥县| 镇赉县| 鹿邑县| 东阿县| 平度市| 宁化县| 奉贤区| 巧家县| 深泽县| 大竹县| 新郑市| 乌什县| 中牟县| 清新县| 河津市| 淮南市| 卢龙县| 图木舒克市| 巩留县| 青田县| 富宁县| 靖江市| 永福县| 屯门区| 南郑县| 普兰店市| 蓝山县| 伊宁县| 谢通门县| 林口县| 古丈县| 宜川县| 定兴县| 大安市| 怀宁县| 上饶县|