Сохранение 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 также делают это, и это довольно забавно.