Pytorch В чем разница между определением слоя в __init __ () и непосредственным использованием в forward ()? - PullRequest
0 голосов
/ 16 мая 2018

В чем разница между методом, который определяет слои в функции __init__(), вызовом слоя вперед позже и методом, который непосредственно использует слой в forward() функции?
Должен ли я определять каждый слой в моем вычислительном графе в построенной функции (например, __init__), прежде чем писать свой вычислительный граф?
Могу ли я напрямую определить и использовать их в forward()?

1 Ответ

0 голосов
/ 16 мая 2018

Все, что содержит веса, которые вы хотите обучить в процессе обучения, должно быть определено в вашем __init__ методе.

Вам не нужно определять функции активации, такие как softmax, ReLU или sigmoid в вашем __init__, вы можете просто вызвать их в forward.

Слои удаления, например, также не нужно определять в __init__, их также можно просто вызывать в forward. Однако определение их в вашем __init__ имеет то преимущество, что их легче отключить во время оценки (позвонив по номеру eval() в вашей модели) .

Надеюсь, это понятно. Просто спросите, есть ли у вас дополнительные вопросы.

...