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直接进行修改,这样能够节省运算内存,不用多存储其他变量

posted @ 2019-04-02 14:58  慢行厚积  阅读(46220)  评论(0编辑  收藏  举报