我正在尝试使用 MC Dropout 在 pytorch 上进行图像分类任务来计算熵以测量模型的不确定性,我已经使用样本均值 output_mean 计算了每个样本的熵,如下面的代码所示
for images,labels in testloader:
images = images.to(device)
labels = labels.to(device)
with torch.no_grad():
output_list = []
for i in range(T):
output_list.append(torch.unsqueeze(model(images), 0))
#calculating samples mean
output_mean = torch.cat(output_list, 0).mean(0) #shape (n_samples, n_classes)
output_mean = np.asarray(output_mean.cpu())
epsilon = sys.float_info.min
# Calculating entropy across multiple MCD forward passes
entropy = -np.sum(output_mean*np.log(output_mean + epsilon), axis=-1) #shape (n_samples, n_classes)
在计算每个样本的熵之后,我试图计算每个类的熵,以获得关于每个样本的模型不确定性。谁能帮我得到正确的公式来计算熵。