給出的示例here分別使用兩個優化器encoder
和decoder
。爲什麼?什麼時候這樣做?何時在PyTorch中使用單獨的優化器?
回答
如果您有多個網絡(從多個對象繼承nn.Module
),您必須這樣做,原因很簡單:構建torch.nn.optim.Optimizer
對象時,它將需要優化的參數作爲參數。在你的情況下:
encoder_optimizer = optim.Adam(encoder.parameters(), lr=learning_rate)
decoder_optimizer = optim.Adam(decoder.parameters(), lr=learning_rate)
這也給你自由地改變參數作爲學習率獨立。如果你不需要,你可以創建一個新的類從nn.Module
繼承和含兩個網絡,編碼器和解碼器或創建一組參數來給優化爲解釋here:
nets = [encoder, decoder]
parameters = set()
for net in nets:
parameters |= set(net.parameters())
其中|
是在這種情況下集合的聯合運算符。
感謝您的回答。那麼這是否意味着如果我們只有從'nn.Module'繼承的編碼器和解碼器類,簡單地將編碼器的隱藏流傳送到解碼器(例如'enc_out,enc_hidden = encoder(x); dec_out =解碼器(y,enc_hidden)')並且只使用一個'optimizer'在這種情況下不起作用? – Edityouprofile
@displayname我不太明白你想要做什麼。你能否詳細說明你的問題 – McLawrence
抱歉,遲到的回覆,我認爲你提到的兩種方法是標準的方法來做到這一點。 – Edityouprofile
- 1. Pytorch模型的超參數優化
- 2. 如何在Pytorch中簡化用於自動編碼器的DataLoader
- 3. 如何在代碼中使用PyTorch PackedSequence?
- 4. 單獨使用Scala框架的優勢?
- 5. 在tensorflow中使用Adam優化器TWICE
- 6. 如何在Chainer的不同層實現單獨的學習率或優化器?
- 7. 使用計數器時優化輸出?
- 8. 在PyTorch中添加L1/L2正則化?
- 9. 如何在使用OR時優化在MySQL表中的搜索?
- 10. 使用requireJS優化器時,buildlayered javascript的優點是什麼?
- 11. 歡迎使用數獨生成器算法優化
- 12. 如何在visual studio中使用優化器和分析器
- 13. 在R中使用優化
- 14. SQLCommand在單獨的類中使用時使用參數化sql查詢
- 15. 在高編譯器優化模式下定時器在msp430中的使用
- 16. 如何優化獨特行的搜索?
- 17. 在Tensorflow中使用Adadelta優化器時未初始化的值錯誤
- 18. 帶有單獨或單獨活動的Tabhost何時使用?
- 19. 如何將RequireJS配置放在單獨的文件中並使r.js優化器正常工作?
- 20. 在GCC中使用內聯ARM彙編時優化使用的寄存器
- 21. 使用PyTorch生成LSTM時間序列
- 22. 在所有編譯器優化禁用時使用volatile
- 23. 優化dax獨特聚合
- 24. 使用RequireJS優化的局部優化
- 25. 使用requirejs優化器縮小爲單個javascript和單個css
- 26. 如何在Play框架中使用RequireJS優化器?
- 27. 使用XCode儀器時間事件探查器啓用優化
- 28. 如何在使用優化工具時使用輸入參數?
- 29. 如何在單獨的行上使用「new」初始化數組?
- 30. 如何在Extra中優化MYSQL: - 使用where;使用臨時;使用filesort
如果我的回答對您有幫助,您會考慮標記爲已接受,以便問題不再無法解答嗎? – McLawrence