作家
登录

利用Pytorch进行CNN详细剖析

作者: 来源: 2017-08-16 11:06:05 阅读 我要评论

可以看到,BASE模型精确率并不是那么的高。

问题C:Batch Normalization v.s BASE

应用Pytorch进行CNN具体分析

在前三个block的卷积层之后加上Batch Normalization层,简单修改收集构造如下即可:

  1. class Net(nn.Module): 
  2.     def __init__(self): 
  3.         super(Net, self).__init__() 
  4.         self.conv1 = nn.Conv2d(1, 20, kernel_size=(5, 5), stride=(1, 1), padding=0) 
  5.         self.conv2 = nn.Conv2d(20, 50, kernel_size=(5, 5), stride=(1, 1), padding=0) 
  6.         self.fc1 = nn.Linear(4*4*50, 500) 
  7.         self.fc2 = nn.Linear(500, 10) 
  8.         self.bn1 = nn.BatchNorm2d(20) 
  9.         self.bn2 = nn.BatchNorm2d(50) 
  10.         self.bn3 = nn.BatchNorm1d(500) 
  11.  
  12.     def forward(self, x): 
  13.         x = self.conv1(x) 
  14.         x = F.max_pool2d(self.bn1(x), 2) 
  15.         x = self.conv2(x) 
  16.         x = F.max_pool2d(self.bn2(x), 2) 
  17.         x = x.view(-1, 4*4*50) 
  18.         x = self.fc1(x) 
  19.         x = F.relu(self.bn3(x)) 
  20.         x = self.fc2(x) 
  21.         return F.log_softmax(x) 

同样的参数run一下,得出加了BN的结不雅为:

  1. Test set: Average loss: 0.0009, Accuracy: 9817/10000 (98.2%) 

由此可见,有明显的效不雅晋升。

关于Batch Normalization的更多材料拜见[2],[5]。

应用Pytorch进行CNN具体分析

问题D: Dropout Layer

应用Pytorch进行CNN具体分析

在最后一层即 fc2 层后加一个 Dropout(p=0.5) 后,在BASE和BN上的结不雅分别为:

同样经由过程脚本运行,增长参数

  1. BASE:Test set: Average loss: 0.0011, Accuracy: 9769/10000 (97.7%) 
  2. BN:  Test set: Average loss: 0.0014, Accuracy: 9789/10000 (97.9%) 

不雅察得知,dropout可以或许对BASE模型起到必定晋升感化,然则对BN模型却效不雅不明显反而降低了。

原因可能在于,BN模型中本身即包含了正则化的效不雅,再加一层Dropout显得没有须要反而可能影响结不雅。

问题E:SK model

SK model: Stacking two 3x3 conv. layers to WordStr 5x5 conv. layer

应用Pytorch进行CNN具体分析


  推荐阅读

  Go语言如果按这样改进,能不能火过Java?

据媒体报道,为改进 Go 说话的开辟对象,Go 可能会获得本身的说话办事器,类似于 Microsoft 和 Red Hat 的说话办事器协定。消息是大年夜 Go 说话开辟者的评论辩论组中流出,所以这不是最>>>详细阅读


本文标题:利用Pytorch进行CNN详细剖析

地址:http://www.17bianji.com/lsqh/36741.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)