作家
登录

利用Pytorch进行CNN详细剖析

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

这部分代码见 SK_s.py 和 runSK.sh 。

问题G:Use different training set sizes

应用Pytorch进行CNN具体分析

起首建立根本的BASE收集,在Pytorch中有如下code:

  1. parser.add_argument('--usedatasize', type=intdefault=60000, metavar='SZ'
  2.                     help='use how many training data to train network'

表示应用的数据大年夜小,早年往后取 usebatchsize 个数据。

这部分法度榜样见 SK_s.py 和 runTrainingSize.sh 。

运行的结不雅如下:

由此可以明显地看出,数据越多,结不雅的精度越大年夜。

太少的数据无法精确反竽暌钩数据的┞符体分布情况,并且轻易过拟合,数据多到必定程度效不雅也会不明显,不过,大年夜多半时刻我们总照样嫌数据太少,并且更多的数据获取起来也有必定难度。

问题H:Use different training sets

应用Pytorch进行CNN具体分析

采取脚本完成,这部分法度榜样见 SK_0.2.py 和 diffTrainingSets.sh 。

运行结不雅如下:

  1.  0-10000: 98.0% 
  2. 10000-20000: 97.8% 
  3. 20000-30000: 97.8% 
  4. 30000-40000: 97.4% 
  5. 40000-50000: 97.5% 
  6. 50000-60000: 97.7% 

由此可见,采取不合的练习样本集合练习出来的收集有必定的差别,虽不是很大年夜,然则毕竟显示出了不稳定的结不雅。

问题I:Random Seed’s effects

应用Pytorch进行CNN具体分析

采取 runSeed.sh 脚本完成,用到了全部60000个练习集。

  1. Test set: Average loss: 0.0014, Accuracy: 9732/10000 (97.3%) 

运行的结不雅如下:

对象

  1. Seed      0:  98.9% 
  2. Seed      1:  99.0% 
  3. Seed     12:  99.1% 
  4. Seed    123:  99.0% 
  5. Seed   1234:  99.1% 
  6. Seed  12345:  99.0% 
  7. Seed 123456:  98.9% 

事实上在用上全部练习集的时刻,随机数生成器的种子设置对于最后结不雅的影响不大年夜。

数据集: MNIST

问题J:ReLU or Sigmoid?

  1. ReLU SK_0.2:  99.0% 
  2. igmoid SK_0.2:  98.6% 

由此可以看出,在练习CNN时,应用ReLU激活单位比Sigmoid激活单位要更好一些。原因可能在于二者机制的差别,sigmoid在神经元输入值较大年夜或者较小时,输出值会近乎0或者1,这使得很多处所的梯度几乎为0,权重几乎得不到更新。而ReLU固然增长了计算的包袱,然则它可以或许明显加快收敛过程,并且也不会有梯度饱和问题。

【编辑推荐】

  1. Threejs开辟3D地图实践总结
  2. Java架构师与开辟者进步效力的10个对象
  3. 现代前端开起身术栈
  4. 开辟者必读 移动端页面优化的10个好办法
  5. 现代前端开起身术栈
【义务编辑:未丽燕 TEL:(010)68476606】

  推荐阅读

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

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


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

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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