第十七篇—模型構(gòu)造
2023-02-16 12:07 作者:YouOnly_LiveOnce | 我要投稿
部分一:繼承Module類來(lái)構(gòu)造模型
以多層感知機(jī)(MLP,Multilayer Perception)舉例:

代碼實(shí)現(xiàn):
結(jié)果:

注意:
net(x)會(huì)調(diào)用Module類的__call__方法,此方法再調(diào)用forward()方法,參考Python類中的__call__方法;
部分二:Module類的子類
(1) Sequential類
Sequential類可以接收一個(gè)子模塊的有序字典(OrderedDict)或多個(gè)子模塊,每個(gè)子模塊用0,1,2,...序號(hào)區(qū)分;
代碼實(shí)現(xiàn):
結(jié)果:

自定義實(shí)現(xiàn)Sequential類,代碼如下:
注意:關(guān)于*args參數(shù)可參考算法崗面試總結(jié)—Python篇(第三題);
(2) ModuleList類
ModuleList類可以接收一個(gè)列表作為輸入,也可以進(jìn)行append和extend操作;
代碼實(shí)現(xiàn):
結(jié)果:

(3) ModuleDict類
ModuleDict類可以接收一個(gè)字典作為輸入;
代碼實(shí)現(xiàn):
結(jié)果:

部分三:構(gòu)造復(fù)雜的模型
代碼實(shí)現(xiàn):
結(jié)果:

注意:
因?yàn)镕ancyMLP類和Sequential類都是Module類的子類,所以可以嵌套使用;
結(jié)果:
