nn.ReLU(inplace=True)中inplace的作用

在文檔中解釋是:

  • 參數: inplace-選擇是否進行覆蓋運算

意思是是否將得到的值計算得到的值覆蓋之前的值,比如:

x = x +1

即對原值進行操作,然後將得到的值又直接複製到該值中

而不是覆蓋運算的例子如:

y = x + 1

x = y

這樣就需要花費記憶體去多存儲一個變數y,所以

nn.Conv2d(3, 64, kernel_size=11, stride=4, padding=2),  nn.ReLU(inplace=True)

的意思就是對從上層網路Conv2d中傳遞下來的tensor直接進行修改,這樣能夠節省運算記憶體,不用多存儲其他變數。

Tags: