本篇內容主要講解“torch.nn.ModuleList有什么用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“torch.nn.ModuleList有什么用”吧!
按需定制可以根據自己的需求進行定制,網站設計、網站建設構思過程中功能建設理應排到主要部位公司網站設計、網站建設的運用實際效果公司網站制作網站建立與制做的實際意義
簡要介紹
class torch.nn.ModuleList(modules=None) Holds submodules in a list. 它可以以列表的形式來保持多個子模塊。 ModuleList can be indexed like a regular Python list, but modules it contains are properly registered, and will be visible by all Module methods. ModuleList 能夠像python列表一樣被索引訪問, 而且其中的模塊會被正確地登記注冊, 而且它保存的模塊可以被所有Module方法可見, 之所以不能直接用python列表來保存, 是因為PyTorch需要自動跟蹤計算圖并計算自動梯度, 如果直接使用python列表或者python字典來保存module, 那么無法正確地自動計算梯度. Parameters 參數 modules (iterable, optional) – an iterable of modules to add 接受的參數是模塊module的可迭代類型,用來添加到ModuleList append(module) 方法 Appends a given module to the end of the list. Parameters module (nn.Module) – module to append 用來將一個module添加到列表末尾 extend(modules) 方法 Appends modules from a Python iterable to the end of the list. 從python可迭代對象向列表添加多個module Parameters 參數 modules (iterable) – iterable of modules to append module的可迭代對象 insert(index, module) 方法 Insert a given module before a given index in the list. Parameters index (int) – index to insert. module (nn.Module) – module to insert 該方法就像操作python普通列表一樣,向ModuleList中指定位置插入一個module
演示代碼:
class MyModule(nn.Module):def __init__(self):super(MyModule, self).__init__()self.linears = nn.ModuleList([nn.Linear(10, 10) for i in range(10)])def forward(self, x):# ModuleList can act as an iterable, or be indexed using intsfor i, l in enumerate(self.linears):x = self.linears[i // 2](x) + l(x)return x
注意: 子模塊必須放在頂層的屬性中,而不可能放在列表或者字典中。 因為如果不在頂層,而是在列表或者字典中, 那么優化器就不能夠準確定位這些子模塊, 因而也就無法優化更新這些模塊的參數。 如果你需要一個列表或者字典來存放你的子模塊, 那么就需要使用pytorch提供的方式nn.ModuleList和nn.ModuleDict方法。 注意: 子模塊submodules必須位于頂層屬性,不能存放在列表或者字典中, 否則優化器不能夠準確定位到這些學習參數,因而無法正確優化參數。 如有必要,我們可以使用pytorch提供的 nn.ModuleList 和nn.ModuleDict來實現列表和字典的功能。
到此,相信大家對“torch.nn.ModuleList有什么用”有了更深的了解,不妨來實際操作一番吧!這里是創新互聯網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
網頁標題:torch.nn.ModuleList有什么用
分享地址:http://vcdvsql.cn/article46/gdgphg.html
成都網站建設公司_創新互聯,為您提供品牌網站建設、網站策劃、定制開發、微信公眾號、響應式網站、關鍵詞優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯