qwe 简易深度框架

qwe

github地址

简介

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

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

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

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

权重初始化有多维高斯分布和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 测试
相关文章
相关标签/搜索