github地址

简介

简单的深度框架,参考Ng的深度学习课程作业,使用了keras的API设计。

方便了解网络具体实现,避免深陷于成熟框架的细节和一些晦涩的优化代码。

网络层实现了Dense, Flatten, Convolution2D, Activation, Dropout等。

优化算法实现了带有动量的梯度下降,同时还有一个带正则的优化算法备选。

权重初始化有多维高斯分布和Xavier initialization两种。

目标函数有MSE,CategoricalCrossEntropy。

在测试中有全连接网络与CNN手写字体识别示例。

环境与安装

python 3.x

依赖

  1. numpy
  2. sklearn
  3. matplotlib
  4. numba

安装

无需安装,使用前请先设置PYTHONPATH路径

qwe工程根目录

eg.qwe位于/home/test/qwe, 执行 export PYTHONPATH=$PYTHONPATH:/home/test/qwe

在config/basic.py中通过SWITCH_EXT选择是否开启扩展,默认关闭。

若选择开启,在qwe/src/ext目录下执行 python setup.py build_ext -i 即可

测试

在test目录下执行 python testfile.py 即可

目录结构

  1. src/
    1. ext/
      1. src/
        1. convUtil.pyx Cython的扩展,加速CNN
    2. layers/
      1.activation.py 激活函数,sigmoid, ReLU, tanh
      1.convolution2D.py 卷积层
      1.simple_convolution2D.py 简单卷积未优化
      1.dense.py 全连接层
      1.dropout.py 丢弃层?
      1.flatten.py 拉伸层
      1.pool.py 池化层,max average
    3. container.py 模型容器,equential
    4. initialization.py 参数初始化方法
    5. objective.py 目标函数
    6. optimizer.py 优化方法
    7. py_util.py py 实现的方法
    8. unit.py 计算单元
    9. util.py 一些方法
  2. test/
    1. parse_mnist.py 解析mnist图片
    2. test_col2img.py 测试
    3. test_mnist_cnn.py 使用CNN训练 mnist
    4. test_mnist_nn.py 使用全连接训练 mnist
    5. test_nn.py 使用全连接训练sklearn一个数据集
    6. test_objective.py 测试
    7. test_unit.py 测试

相关文章:

  • 2021-10-17
  • 2022-12-23
  • 2022-12-23
  • 2021-07-16
  • 2021-09-12
  • 2021-09-24
  • 2021-08-15
  • 2021-04-06
猜你喜欢
  • 2022-12-23
  • 2021-12-26
  • 2021-04-11
  • 2021-09-27
  • 2021-07-22
  • 2021-09-24
  • 2021-11-27
相关资源
相似解决方案