程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了纠正 Pytorch 中的验证损失?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决纠正 Pytorch 中的验证损失??

开发过程中遇到纠正 Pytorch 中的验证损失?的问题如何解决?下面主要结合日常开发的经验,给出你关于纠正 Pytorch 中的验证损失?的解决方法建议,希望对你解决纠正 Pytorch 中的验证损失?有所启发或帮助;

我对如何计算验证损失有点困惑?验证损失是在一个时期结束时计算的,还是应该在批次迭代期间也监控损失? 下面我有使用 running_loss 的计算机,它正在批量累积 - 但我想看看它是否是正确的方法?

def valIDate(loader,model,criterion):                       
    correct = 0                                               
    @R_928_10586@l = 0                                                 
    running_loss = 0.0                                        
    model.eval()                                              
    with torch.no_grad():                                     
        for i,data in enumerate(loader):                     
            inputs,labels = data                             
            inputs = inputs.to(devicE)                        
            labels = labels.to(devicE)                        
                                                              
            outputs = model(inputs)                           
            loss = criterion(outputs,labels)                 
            _,preDicted = torch.max(outputs.data,1)         
            @R_928_10586@l += labels.size(0)                           
            correct += (preDicted == labels).sum().item()     
            running_loss = running_loss + loss.item()         
    mean_val_accuracy = (100 * correct / @R_928_10586@l)               
    mean_val_loss = ( running_loss )                  
    #mean_val_accuracy = accuracy(outputs,labels)             
    print('ValIDation Accuracy: %d %%' % (mean_val_accuracy)) 
    print('ValIDation Loss:',mean_val_loss )                

下面是我正在使用的训练块

def Train(loader,criterion,optimizer,epoch):                                   
    correct = 0                                                                          
    running_loss = 0.0                                                                   
    i_max = 0                                                                            
    for i,data in enumerate(loader):                                                    
        @R_928_10586@l_loss = 0.0                                                                 
        #print('batch=',i)                                                               
        inputs,labels = data                                                            
        inputs = inputs.to(devicE)                                                       
        labels = labels.to(devicE)                                                       
                                                                                         
        optimizer.zero_grad()                                                            
        outputs = model(inputs)                                                          
        loss = criterion(outputs,labels)                                                
        loss.BACkWARD()                                                                  
        optimizer.step()                                                                 
                                                                                         
        running_loss += loss.item()                                                      
        if i % 2000 == 1999:                                                             
            print('[%d,%5d] loss: %.3f' % (epoch + 1,i + 1,running_loss / 2000))     
            running_loss = 0.0                                                           
                                                                                         
    print('finished Training')
    return mean_val_loss,mean_val_accuracy

解决方法

您可以根据需要在验证中评估您的网络。它可以是每个时期,或者如果由于数据集庞大而成本太高,则可以是每个 N 时期。

您所做的似乎是正确的,您计算了整个验证集的损失。您可以选择除以它的长度以对损失进行归一化,因此如果有一天增加验证集,规模将相同。

大佬总结

以上是大佬教程为你收集整理的纠正 Pytorch 中的验证损失?全部内容,希望文章能够帮你解决纠正 Pytorch 中的验证损失?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。