У меня есть несколько вопросов о следующих фрагментах кода:
>>> def init_weights(m):
print(m)
if type(m) == nn.Linear:
m.weight.data.fill_(1.0)
print(m.weight)
>>> net = nn.Sequential(nn.Linear(2, 2), nn.Linear(2, 2))
>>> net.apply(init_weights)
apply () является частью пакета pytorch.nn. Вы найдете код в документации этого пакета. Заключительные вопросы:
1. Почему этот пример кода работает, хотя к init_weights () не добавляется аргумент или скобки, если он задан для apply ()?
2. Откуда функция init_weights (m) получает аргумент m, когда она передается в качестве параметра функции apply () без скобок и m?