Я обучил сеть со следующей структурой:
Intent_LSTM(
(attention): Attention()
(embedding): Embedding(34601, 400)
(lstm): LSTM(400, 512, num_layers=2, batch_first=True, dropout=0.5)
(dropout): Dropout(p=0.5, inplace=False)
(fc): Linear(in_features=512, out_features=3, bias=True)
)
Теперь я хочу протестировать эту обученную сеть, а также получить оценку достоверности классификации. Вот моя текущая реализация тестовой функции:
output = model_current(inputs)
pred = torch.round(output.squeeze())
pred = pred.argmax(dim=1, keepdim=True)
Теперь мой вопрос таков:
Здесь pred - это просто вывод из полностью подключенного слоя из моей сети без softmax (как того требует функция потерь). Является ли это (pred = pred.argmax (dim = 1, keepdim = True)) правильным способом получения прогнозов? Или я должен передать выходные данные из сети на слой softmax, а затем выполнить argmax?
Как получить показатель достоверности? Должен ли я передать вывод из сети на слой softmax и выбрать argmax в качестве уверенности класса?