dropout中的in-place是什么意思
What is the meaning of in-place in dropout
def dropout(input, p=0.5, training=True, inplace=False)
inplace: If set to True
, will do this operation in-place.
请问dropout中的in-place是什么意思。它有什么作用?
执行这些操作时性能有变化吗?
谢谢
保持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 文档也这样做,这有点有趣。
def dropout(input, p=0.5, training=True, inplace=False)
inplace: If set to
True
, will do this operation in-place.
请问dropout中的in-place是什么意思。它有什么作用? 执行这些操作时性能有变化吗?
谢谢
保持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 文档也这样做,这有点有趣。