in-place in dropout是什么意思

时间:2019-10-28 10:18:53

标签: machine-learning neural-network pytorch dropout

def dropout(input, p=0.5, training=True, inplace=False)
  

就地:如果设置为True,将就地执行此操作。

我想问问辍学就地意味着什么。它有什么作用? 执行这些操作时性能会发生变化吗?

谢谢

1 个答案:

答案 0 :(得分:1)

保持inplace=True本身将使张量input本身丢失一些值,而如果保留inplace=False,则将droput(input)的结果保存在其他变量中要检索。

示例:

import torch
import torch.nn as nn
inp = torch.tensor([1.0, 2.0, 3, 4, 5])

outplace_dropout = nn.Dropout(p=0.4)
print(inp)
output = outplace_dropout(inp)
print(output)
print(inp) # Notice that the input doesn't get changed here


inplace_droput = nn.Dropout(p=0.4, inplace=True)
inplace_droput(inp)
print(inp) # Notice that the input is changed now

PS:这与您的要求无关,但请尝试不要使用input作为变量名,因为input是Python关键字。我知道Pytorch文档也可以做到这一点,这很有趣。