問題
RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [4]] is at version 1; expected version 0 instead
分析
nn.relu(True) # 這個引起的問題
原來的變量被替換掉了,所以梯度回傳的時候 找不到之前的變量了
解決辦法
nn.relu(False) 把inplace 設置為False 即可
inplace 的作用是替換掉之前的變量,作用:節省內存,不需要保留之前的變量了,只需要對原來的變量進行覆蓋就行了