qwe

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 测试

qwe 简易深度框架的更多相关文章

  1. DirectX11 With Windows SDK--13 动手实现一个简易Effects框架、阴影效果绘制

    前言 到现在为止,所有的教程项目都没有使用Effects11框架类来管理资源.因为在D3DCompile API (#47)版本中,如果你尝试编译fx_5_0的效果文件,会收到这样的警告: X4717 ...

  2. 使用Node.js实现简易MVC框架

    在使用Node.js搭建静态资源服务器一文中我们完成了服务器对静态资源请求的处理,但并未涉及动态请求,目前还无法根据客户端发出的不同请求而返回个性化的内容.单靠静态资源岂能撑得起这些复杂的网站应用,本 ...

  3. 简易RPC框架-心跳与重连机制

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  4. 简易RPC框架-客户端限流配置

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  5. [转] 使用Node.js实现简易MVC框架

    在使用Node.js搭建静态资源服务器一文中我们完成了服务器对静态资源请求的处理,但并未涉及动态请求,目前还无法根据客户端发出的不同请求而返回个性化的内容.单靠静态资源岂能撑得起这些复杂的网站应用,本 ...

  6. 【转】TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端

    [转]TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端).UDP客户端 目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP ...

  7. 简易RPC框架-SPI

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  8. 自行实现一个简易RPC框架

    10分钟写一个RPC框架 1.RpcFramework package com.alibaba.study.rpc.framework; import java.io.ObjectInputStrea ...

  9. 手动搭建简易web框架与django框架简介

    目录 纯手写简易web框架 基于wsgiref模块 动静态网页 简单了解jinja2模块 框架请求流程 python主流web框架 django框架 简介 应用app 命令操作django pycha ...

随机推荐

  1. Git 生成 SSH 公钥

    2018-01-05 11:24:04 许多 Git 服务器都使用 SSH 公钥进行认证. 为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份. 这个过程在所有 ...

  2. execl列数据成等差递增递减

    如上图若想以10,20,30...这样递增: 1).首先需选中10,20所在的单元格,鼠标移至20所在的单元格右下角 2).此时会出现一个十字"十"符号,点击直向下拖动至某个地方, ...

  3. 浅谈python的对象的三大特性之继承

    前面我们定义了人的类,并用这个类实例化出两个人jack和lily,查看了它们的内存空间. 现在我们再来看看类中所存在的对向对象编程的三大特性之继承的一些特性. 前面定义了一个人的类,可是我们还知道,人 ...

  4. oneNote总结

    22.添加附加文件删除后,文件大小没有发生改变的(优化文件和清空回收站)

  5. WPF ”真正的“高仿QQ

    时常可以在各种论坛 博客 看到 各种所谓的 高仿QQ. 说实话 越看越想笑呢.(PS:纯粹的 抨击 那些 不追求 UI 完美主义者) 例如:       本次模仿 采用 C# WPF XAML , 总 ...

  6. Linux下配置APACHE支持PHP环境

    编辑 /usr/local/apache2/conf/httpd.conf 文件时要注意: 找到: AddType application/x-compress .Z AddType applicat ...

  7. Filezilla Server 出现Error, could not connect to server解决办法

    打开任务管理器:Win+R:services.msc找到Filezilla Server并启动服务

  8. Jenkins gitlab vue,angular,react 自动化构建【原】

    大致思路,(本篇主要讲vue ,当然了 angular react 也是一样配置) ,转发请注明原链接,谢谢 :) 1. 服务器上面配置jenkins (安装配置,不介绍) 2.新建item 自由风格 ...

  9. 批量修改git仓库地址脚本

    前言   公司的代码都存放在自己搭建的gitlab上面.之前由于老板升级gitlab.导致下面有个叫做"api"的groups无法访问.通过无所不能的谷歌才知道.在gitlab在某 ...

  10. ubuntu命令行下java工程编辑与算法(第四版)环境配置

    ubuntu命令行下java工程编辑与算法(第四版)环境配置 java 命令行 javac java 在学习算法(第四版)中的实例时,因需要安装配套的java编译环境,可是在编译java文件的时候总是 ...