Skip to content

izzrak/numpy_cnn

Repository files navigation

神经网络框架构建

模块搭建

  • 卷积层: conv_layer
  • 池化层: max_pooling
  • 激活函数: relu
  • 全联接层: fc_layer
  • 损失函数层: loss_layer
  • 初始化: gaussian
  • 优化器: adam

训练配置

  • 网络封装: conv_net.py
  • 训练/验证: solver.py
  • 保存权重: 'param.npy'
  • 分类接口: classify.py

网络结构

  • conv1: (1, 28, 28, 8)
  • relu1: (1, 28, 28, 8)
  • pool1: (1, 14, 14, 8)
  • conv2: (1, 14, 14, 16)
  • relu2: (1, 14, 14, 16)
  • pool2: (1, 7, 7, 16)
  • fc: (1, 10)

提交文件

  • 网络结构图: 初始化网络时打印输入参数
  • train源码及执行命令: solver.train
  • test_set评测源码及执行命令: solver.test()
  • inference脚本(支持读一个文件夹的图片,输出结果): 单张图片识别

训练结果

  • 训练周期: 2 epoch
  • 训练准确率: 0.9595(5_12_3_24), 0.9526(3_8_3_16), 0.9586(5_8_3_16,最终采用)
  • 测试准确率: 0.9465(5_12_3_24), 0.9391(3_8_3_16), 0.9509(5_8_3_16,最终采用)

提升方向

  • 优化初始化方法
  • 实现批归一化
  • 实现dropout
  • 深层网络
  • depthwise conv
  • 替换全联接层
  • 多线程计算
  • 梳理框架结构

About

cnn framework based on numpy

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages