将pytorch更新到0.4.0最新版后对0.3.1版本代码会有如下警告,它在提醒用户下个版本这将成为一个错误
错误1:UserWarning: invalid index of a 0-dim tensor. This will be an error in PyTorch 0.5. Use tensor.item() to convert a 0-dim tensor to a Python number train_loss += loss.data[0]
修改如下:
#原语句:
train_loss+=loss.data[0]
#修改后:
train_loss+=loss.item()
错误2:UserWarning: volatile was removed and now has no effect. Use `with torch.no_grad():` instead.
v = Variable(torch.from_numpy(x).type(dtype), requires_grad = False, volatile = True)
修改如下:
#原语句
v = Variable(torch.from_numpy(x).type(dtype), requires_grad = False, volatile = True)
#修改后语句
v = Variable(torch.from_numpy(x).type(dtype), requires_grad = False)
错误3:runtimewarning:invalid value encountered in divide
修改如下:
import numpy as np
np.seterr(divide='ignore', invalid='ignore')
错误4:Implicit dimension choice for softmax has been deprecated. Change the call to include dim=X
修改如下:
#原语句
density_cls_prob = F.softmax(density_cls_score)
#修改后
density_cls_prob = F.softmax(density_cls_score,dim=1)
错误5:raise ImportError( "unittest2 is required to run tests with Python 2")
解决方法:
conda install unittest2