def dropout(input, p=0.5, training=True, inplace=False)
就地:如果设置为
True
,将就地执行此操作。
我想问问辍学就地意味着什么。它有什么作用? 执行这些操作时性能会发生变化吗?
谢谢
答案 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文档也可以做到这一点,这很有趣。