qwe 简易深度框架
qwe
github地址
简介
简单的深度框架,参考Ng的深度学习课程作业,使用了keras的API设计。
方便了解网络具体实现,避免深陷于成熟框架的细节和一些晦涩的优化代码。
网络层实现了Dense, Flatten, Convolution2D, Activation, Dropout等。
优化算法实现了带有动量的梯度下降,同时还有一个带正则的优化算法备选。
权重初始化有多维高斯分布和Xavier initialization两种。
目标函数有MSE,CategoricalCrossEntropy。
在测试中有全连接网络与CNN手写字体识别示例。
环境与安装
python 3.x
依赖
- numpy
- sklearn
- matplotlib
- 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 即可
目录结构
- src/
- ext/
- src/
- convUtil.pyx Cython的扩展,加速CNN
- src/
- 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 - container.py 模型容器,equential
- initialization.py 参数初始化方法
- objective.py 目标函数
- optimizer.py 优化方法
- py_util.py py 实现的方法
- unit.py 计算单元
- util.py 一些方法
- ext/
- test/
- parse_mnist.py 解析mnist图片
- test_col2img.py 测试
- test_mnist_cnn.py 使用CNN训练 mnist
- test_mnist_nn.py 使用全连接训练 mnist
- test_nn.py 使用全连接训练sklearn一个数据集
- test_objective.py 测试
- test_unit.py 测试
qwe 简易深度框架的更多相关文章
- DirectX11 With Windows SDK--13 动手实现一个简易Effects框架、阴影效果绘制
前言 到现在为止,所有的教程项目都没有使用Effects11框架类来管理资源.因为在D3DCompile API (#47)版本中,如果你尝试编译fx_5_0的效果文件,会收到这样的警告: X4717 ...
- 使用Node.js实现简易MVC框架
在使用Node.js搭建静态资源服务器一文中我们完成了服务器对静态资源请求的处理,但并未涉及动态请求,目前还无法根据客户端发出的不同请求而返回个性化的内容.单靠静态资源岂能撑得起这些复杂的网站应用,本 ...
- 简易RPC框架-心跳与重连机制
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- 简易RPC框架-客户端限流配置
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
- [转] 使用Node.js实现简易MVC框架
在使用Node.js搭建静态资源服务器一文中我们完成了服务器对静态资源请求的处理,但并未涉及动态请求,目前还无法根据客户端发出的不同请求而返回个性化的内容.单靠静态资源岂能撑得起这些复杂的网站应用,本 ...
- 【转】TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端
[转]TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端).UDP客户端 目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP ...
- 简易RPC框架-SPI
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- 自行实现一个简易RPC框架
10分钟写一个RPC框架 1.RpcFramework package com.alibaba.study.rpc.framework; import java.io.ObjectInputStrea ...
- 手动搭建简易web框架与django框架简介
目录 纯手写简易web框架 基于wsgiref模块 动静态网页 简单了解jinja2模块 框架请求流程 python主流web框架 django框架 简介 应用app 命令操作django pycha ...
随机推荐
- 【转】国际GNSS服务组织IGS
国际GNSS服务组织The International GNSS Service,简称IGS,前身为国际GPS服务组织.IGS提供的高质量数据和产品被用于地球科学研究等多个领域. IGS组织由卫星跟踪 ...
- smokeping一键安装脚本
#!/bin/bash #Date 2017/11/11 #mail caoyf1992@163.com [ $(id -u) != "0" ] && echo & ...
- ASP.NET没有魔法——ASP.NET MVC 模型验证
在前面的文章中介绍了用户的注册及登录功能,在注册用户时可以通过代码的形式限制用户名及密码的格式,如果不符合要求那么就无法完成操作,如下图: 该功能的原理是Identity基于的Entity Frame ...
- C++——函数的调用
调用前先声明函数: >>若函数定义在调用点之前,则无需另外声明 >>若函数定义在调用点之后,则需要在调用函数前按如下形式声明函数原型(原型声明) 类型标识符 被调用函数名( ...
- spring之集合注入
list: <bean id="userAction" class="com.xx.action.UserAction"> <property ...
- CentOS下内存使用率查看
freetotal used free shared buffers cachedMem: 1815340 1628680 ...
- python学习交流 - 内置函数使用方法和应用举例
内置函数 python提供了68个内置函数,在使用过程中用户不再需要定义函数来实现内置函数支持的功能.更重要的是内置函数的算法是经过python作者优化的,并且部分是使用c语言实现,通常来说使用内置函 ...
- Linux内核链表-通用链表的实现
最近编程总想着参考一些有名的开源代码是如何实现的,因为要写链表就看了下linux内核中对链表的实现. 链表是一种非常常见的数据结构,特别是在动态创建相应数据结构的情况下更是如此,然而在操作系统内核中, ...
- POJ 2826 An Easy Problem?![线段]
An Easy Problem?! Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12970 Accepted: 199 ...
- Django搭建博客网站(四)
Django搭建博客网站(四) 最后一篇主要讲讲在后台文章编辑加入markdown,已经在文章详情页对markdown的解析. Django搭建博客网站(一) Django搭建博客网站(二) Djan ...