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 ...
随机推荐
- CentOS 通过yum来升级php到php5.6
在文章中,我们将展示在centOS系统下如果将php升级到5.6,之前通过yum来安装lamp环境,直接升级的话,提示没有更新包,也就是说默认情况下php5.3.3是最新 1.查看已经安装的php版本 ...
- 【php】RBAC 管理权限
用户 角色 权限 用户:张三 角色:管理员 权限:page/index1.php 能访问的页面
- 蓝桥杯练习系统— 算法训练 Beaver's Calculator
问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次.他开发了一种新的计算器,他将此命名为"Beaver's Calculator 1.0".它非常特别,并且被计划使用在各种各样 ...
- div仿td标签属性
链接:https://pan.baidu.com/s/1kW1At9d 密码:g0he 这里说的div是指固定大小的,动态往里面填充文字的时候,文字一直水平垂直居中(换行也是).就和td标签一样.当然 ...
- javascipt中的DOM对象
1.HTML中DOM对象的概念 HTML Document Object Model(文档对象模型) HTML DOM定义了访问和操作HTML文档的标准方法 HTML DOM把HTML文档呈现为带有元 ...
- POJ Ikki's Story IV - Panda's Trick [2-SAT]
题意: 圆上n个点,m对点之间连边,连在园内或园外,所有边不相交是否可行 发现两对点连线都在内相交则都在外也相交,那么只有一个在内一个在外啦,转化为$2-SAT$问题 #include <ios ...
- POJ 3581 Sequence [后缀数组]
Sequence Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 6911 Accepted: 1543 Case Tim ...
- java json字符串 获取value
java中可以导入有关json的jar包,但是此jar包又得依赖其他的jar包 ,所以需要导入的包如下: 可在这里下载相关jar包,CSDN下载啥都要钱 讨厌死了 还是这个链接好---云盘 htt ...
- POJ 1023 The Fun Number System
Description In a k bit 2's complement number, where the bits are indexed from 0 to k-1, the weight o ...
- 学习资料分享:Python能做什么?
最近一直忙着研究学习Python,很久没更新博客了,整理了一些Python学习资料,和大家分享一下!每天更新一篇~ 一.Python 特点 1.易于学习:Python有相对较少的关键字,结构简单,和一 ...