Pytorch報錯:'UserWarning: RNN module weights are not part of single contiguous chunk of memory....'

最近在跑代碼的時候遇到了一個問題,代碼裏的網絡有使用到RNN,錯誤信息如下:

‘UserWarning: RNN module weights are not part of single contiguous chunk of memory. This means they need to be compacted at every call, possibly greately increasing memory usage. To compact weights again call flatten_parameters()’

其實這個並不是一個錯誤,只是一個警告,只是在我epoch裏打印每一個step的loss值的時候它都會顯示一次。於是我仔細看了這個警告,其實就是說RNN的權值並不是單一連續的,這些權值在每一次RNN被調用的時候都會被壓縮,會很大程度上增加顯存消耗。
警告裏也給出瞭解決辦法,使用flatten_parameters()把權重存成連續的形式,可以提高內存利用率。
具體的使用方法就是在所使用的RNN模塊的forward函數下加上

self.rnn.flatten_parameters()  #self.rnn是我所使用的RNN
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章