Есть ли лучший способ или эффективный способ иметь случайный классификатор в pytorch? Мой случайный классификатор в основном выглядит так:
def forward(self, inputs):
# get a random tensor
logits = torch.rand(batch_size, num_targets, num_classes)
return logits
Это должно быть в принципе нормально, но оптимизатор поднимает ValueError
, потому что классификатор - в отличие от всех других классификаторов / моделей в системе - не работает. очевидно, имеют любые параметры, которые можно оптимизировать. Есть ли для этого встроенное решение Torch или я должен изменить архитектуру системы (чтобы не выполнять оптимизацию)?
Изменить: если добавить некоторые произвольные параметры в модель, как показано ниже, потеря приведет к RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn
def __init__(self, transformer_models: Dict, opt: Namespace):
super(RandomMulti, self).__init__()
self.num_classes = opt.polarities_dim
# add some parameters so that the optimizer doesn't raise an exception
self.some_params = nn.Linear(2, 2)
Я действительно предполагаю, что существует более простое решение, поскольку случайный базовый классификатор - довольно обычная вещь в машинном обучении.