当前位置 主页 > 网站技术 > 代码类 >

    pytorch三层全连接层实现手写字母识别方式(2)

    栏目:代码类 时间:2020-01-14 18:05

    训练的结果截图如下:

    测试网络

    #测试网络
    model.eval()#将模型变成测试模式
    eval_loss=0
    eval_acc=0
    for data in test_loader:
     img,label=data
     img=img.view(img.size(0),-1)#测试集不需要反向传播,所以可以在前项传播的时候释放内存,节约内存空间
     if torch.cuda.is_available():
      img=Variable(img,volatile=True).cuda()
      label=Variable(label,volatile=True).cuda()
     else:
      img=Variable(img,volatile=True)
      label=Variable(label,volatile=True)
     out=model(img)
     loss=criterion(out,label)
     eval_loss+=loss.item()*label.size(0)
     _,pred=torch.max(out,1)
     num_correct=(pred==label).sum()
     eval_acc+=num_correct.item()
    print('test loss:{:.6f},ac:{:.6f}'.format(eval_loss/(len(test_dataset)),eval_acc/(len(test_dataset))))
    

    训练的时候,还可以加入一些dropout,正则化,修改隐藏层神经元的个数,增加隐藏层数,可以自己添加。

    以上这篇pytorch三层全连接层实现手写字母识别方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持IIS7站长之家。