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 測試
相關文章
相關標籤/搜索