DL之NN/CNN:NN算法进阶优化(本地数据集50000张训练集图片),六种不同优化算法实现手写数字图片识别逐步提高99.6%准确率


蜡烛刻苦
蜡烛刻苦 2022-09-20 11:19:07 49694
分类专栏: 资讯

DL之NN/CNN:NN算法进阶优化(本地数据集50000张训练集图片),六种不同优化算法实现手写数字图片识别逐步提高99.6%准确率

目录

设计思路

设计代码


设计思路

设计代码

  1. import mnist_loader
  2. from network3 import Network
  3. from network3 import ConvPoolLayer, FullyConnectedLayer, SoftmaxLayer
  4. training_data, validation_data, test_data = mnist_loader.load_data_wrapper()
  5. mini_batch_size = 10
  6. NN算法:sigmoid函数;准确率97%
  7. net = Network([
  8. FullyConnectedLayer(n_in=784, n_out=100),
  9. SoftmaxLayer(n_in=100, n_out=10)], mini_batch_size)
  10. net.SGD(training_data, 60, mini_batch_size, 0.1, validation_data, test_data)
  11. CNN算法:1层Convolution+sigmoid函数;准确率98.78%
  12. net = Network([
  13. ConvPoolLayer(image_shape=(mini_batch_size, 1, 28, 28),
  14. filter_shape=(20, 1, 5, 5),
  15. poolsize=(2, 2)),
  16. FullyConnectedLayer(n_in=20*12*12, n_out=100),
  17. SoftmaxLayer(n_in=100, n_out=10)], mini_batch_size)
  18. CNN算法:2层Convolution+sigmoid函数;准确率99.06%。层数过多并不会使准确率大幅度提高,有可能overfit,合适的层数需要通过实验验证出来,并不是越多越好
  19. net = Network([
  20. ConvPoolLayer(image_shape=(mini_batch_size, 1, 28, 28),
  21. filter_shape=(20, 1, 5, 5),
  22. poolsize=(2, 2)),
  23. ConvPoolLayer(image_shape=(mini_batch_size, 20, 12, 12),
  24. filter_shape=(40, 20, 5, 5),
  25. poolsize=(2, 2)),
  26. FullyConnectedLayer(n_in=40*4*4, n_out=100),
  27. SoftmaxLayer(n_in=100, n_out=10)], mini_batch_size)
  28. CNN算法:用Rectified Linear Units即f(z) = max(0, z),代替sigmoid函数;准确率99.23%
  29. net = Network([
  30. ConvPoolLayer(image_shape=(mini_batch_size, 1, 28, 28),
  31. filter_shape=(20, 1, 5, 5),
  32. poolsize=(2, 2),
  33. activation_fn=ReLU), 激活函数采用ReLU函数
  34. ConvPoolLayer(image_shape=(mini_batch_size, 20, 12, 12),
  35. filter_shape=(40, 20, 5, 5),
  36. poolsize=(2, 2),
  37. activation_fn=ReLU),
  38. FullyConnectedLayer(n_in=40*4*4, n_out=100, activation_fn=ReLU),
  39. SoftmaxLayer(n_in=100, n_out=10)], mini_batch_size)
  40. CNN算法:用ReLU函数+增大训练集25万(原先50000*5,只需将每个像素向上下左右移动一个像素);准确率99.37%
  41. $ python expand_mnist.py 将图片像素向上下左右移动
  42. expanded_training_data, _, _ = network3.load_data_shared("../data/mnist_expanded.pkl.gz")
  43. net = Network([
  44. ConvPoolLayer(image_shape=(mini_batch_size, 1, 28, 28),
  45. filter_shape=(20, 1, 5, 5),
  46. poolsize=(2, 2),
  47. activation_fn=ReLU),
  48. ConvPoolLayer(image_shape=(mini_batch_size, 20, 12, 12),
  49. filter_shape=(40, 20, 5, 5),
  50. poolsize=(2, 2),
  51. activation_fn=ReLU),
  52. FullyConnectedLayer(n_in=40*4*4, n_out=100, activation_fn=ReLU),
  53. SoftmaxLayer(n_in=100, n_out=10)], mini_batch_size)
  54. net.SGD(expanded_training_data, 60, mini_batch_size, 0.03,validation_data, test_data, lmbda=0.1)
  55. CNN算法:用ReLU函数+增大训练集25万+dropout(随机选取一半神经元)用在最后的FullyConnected层;准确率99.60%
  56. expanded_training_data, _, _ = network3.load_data_shared("../data/mnist_expanded.pkl.gz")
  57. net = Network([
  58. ConvPoolLayer(image_shape=(mini_batch_size, 1, 28, 28),
  59. filter_shape=(20, 1, 5, 5),
  60. poolsize=(2, 2),
  61. activation_fn=ReLU),
  62. ConvPoolLayer(image_shape=(mini_batch_size, 20, 12, 12),
  63. filter_shape=(40, 20, 5, 5),
  64. poolsize=(2, 2),
  65. activation_fn=ReLU),
  66. FullyConnectedLayer(
  67. n_in=40*4*4, n_out=1000, activation_fn=ReLU, p_dropout=0.5),
  68. FullyConnectedLayer(
  69. n_in=1000, n_out=1000, activation_fn=ReLU, p_dropout=0.5),
  70. SoftmaxLayer(n_in=1000, n_out=10, p_dropout=0.5)],
  71. mini_batch_size)
  72. net.SGD(expanded_training_data, 40, mini_batch_size, 0.03,validation_data, test_data)

相关文章
DL之NN/CNN:NN算法进阶优化(本地数据集50000张训练集图片),六种不同优化算法实现手写数字识别逐步提高,应用案例自动驾驶之识别周围车牌号

文章知识点与官方知识档案匹配,可进一步学习相关知识
算法技能树进阶任务算法问答19817 人正在系统学习中

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=4263
赞同 0
评论 0 条
蜡烛刻苦L0
粉丝 0 发表 4 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2944
【软件正版化】软件正版化工作要点  2863
统信UOS试玩黑神话:悟空  2823
信刻光盘安全隔离与信息交换系统  2717
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1251
grub引导程序无法找到指定设备和分区  1217
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  163
点击报名 | 京东2025校招进校行程预告  162
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  160
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  157
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!