Каково значение места в отсеве - PullRequest
1 голос
/ 28 октября 2019
def dropout(input, p=0.5, training=True, inplace=False)

на месте: если установлено значение True, эта операция будет выполнена на месте.

Я хотел бы спросить, что означает место в отсеве. Что оно делает? Какие-либо изменения производительности при выполнении этих операций?

Спасибо

1 Ответ

1 голос
/ 30 октября 2019

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

...