这部分代码见 SK_s.py 和 runSK.sh 。
问题G:Use different training set sizes
起首建立根本的BASE收集,在Pytorch中有如下code:
- parser.add_argument('--usedatasize', type=int, default=60000, metavar='SZ',
- help='use how many training data to train network')
表示应用的数据大年夜小,早年往后取 usebatchsize 个数据。
这部分法度榜样见 SK_s.py 和 runTrainingSize.sh 。
运行的结不雅如下:
由此可以明显地看出,数据越多,结不雅的精度越大年夜。
太少的数据无法精确反竽暌钩数据的┞符体分布情况,并且轻易过拟合,数据多到必定程度效不雅也会不明显,不过,大年夜多半时刻我们总照样嫌数据太少,并且更多的数据获取起来也有必定难度。
问题H:Use different training sets
采取脚本完成,这部分法度榜样见 SK_0.2.py 和 diffTrainingSets.sh 。
运行结不雅如下:
- 0-10000: 98.0%
- 10000-20000: 97.8%
- 20000-30000: 97.8%
- 30000-40000: 97.4%
- 40000-50000: 97.5%
- 50000-60000: 97.7%
由此可见,采取不合的练习样本集合练习出来的收集有必定的差别,虽不是很大年夜,然则毕竟显示出了不稳定的结不雅。
问题I:Random Seed’s effects
采取 runSeed.sh 脚本完成,用到了全部60000个练习集。
- Test set: Average loss: 0.0014, Accuracy: 9732/10000 (97.3%)
运行的结不雅如下:
对象
- Seed 0: 98.9%
- Seed 1: 99.0%
- Seed 12: 99.1%
- Seed 123: 99.0%
- Seed 1234: 99.1%
- Seed 12345: 99.0%
- Seed 123456: 98.9%
事实上在用上全部练习集的时刻,随机数生成器的种子设置对于最后结不雅的影响不大年夜。
数据集: MNIST
问题J:ReLU or Sigmoid?
- ReLU SK_0.2: 99.0%
- igmoid SK_0.2: 98.6%
由此可以看出,在练习CNN时,应用ReLU激活单位比Sigmoid激活单位要更好一些。原因可能在于二者机制的差别,sigmoid在神经元输入值较大年夜或者较小时,输出值会近乎0或者1,这使得很多处所的梯度几乎为0,权重几乎得不到更新。而ReLU固然增长了计算的包袱,然则它可以或许明显加快收敛过程,并且也不会有梯度饱和问题。
【编辑推荐】
- Threejs开辟3D地图实践总结
- Java架构师与开辟者进步效力的10个对象
- 现代前端开起身术栈
- 开辟者必读 移动端页面优化的10个好办法
- 现代前端开起身术栈
推荐阅读
据媒体报道,为改进 Go 说话的开辟对象,Go 可能会获得本身的说话办事器,类似于 Microsoft 和 Red Hat 的说话办事器协定。消息是大年夜 Go 说话开辟者的评论辩论组中流出,所以这不是最>>>详细阅读
本文标题:利用Pytorch进行CNN详细剖析
地址:http://www.17bianji.com/lsqh/36741.html
1/2 1