如何计算每个类别的熵以测量pytorch上的模型不确定性

问题描述

我正在尝试使用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)

在计算每个样本的熵之后,我尝试为每个类计算熵,以获取关于每个样本的模型不确定性。 谁能帮助我获得正确的公式来计算熵。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...