深层神经网络。
dnnet的Python项目详细描述
DNnet
用numpy实现深度神经网络。 更少的依赖,更容易使用。
目录
- 简要介绍dnnet;介绍一些小示例和支持的方法
- 安装
- 示例;运行示例脚本
- 在项目中使用
DNNET简介
快速浏览用法
用户可以创建NeuralNetwork实例,逐层添加,
最终确定模型,设置优化器,执行模型拟合,并保存模型。
在下面,没有指定一些参数来简化示例。
model = NeuralNetwork(input_shape=(1, 28, 28), dtype=np.float32)
model.add(ConvolutionLayer(filter_shape=(32, 3, 3))
model.add(BatchNormLayer())
model.add(ActivationLayer(activation=Activation.Type.relu))
model.add(DropoutLayer(drop_ratio=0.25))
model.add(AffineLayer(output_shape=10)
model.add(ActivationLayer(activation=Activation.Type.softmax)
model.compile()
optimizer = AdaGrad(learning_rate=1e-3, weight_decay=1e-3)
learning_curve = model.fit(
x=x, y=y, epochs=5, batch=size=100, optimizer=optimizer,
loss_function=LossFunction.Type.multinomial_cross_entropy)
model.save(path='./data/output', name='conv_net.dat')
用户还可以加载模型,并预测输出。
model.load(path='./data/output', name='conv_net.dat')
y = model.predict(x)
支持的方法
层
- 仿射
- 卷积
- 激活
- 游泳池
- 批量规范化
- 辍学
激活功能
- 乙状结肠
- relu
- 洗脱液
- 谭
- softmax
优化方法
- 新元
- 动量
- 阿达格拉德
- 亚当
- adadelta
- rmsprop
- 烟雾3
权重初始化方法
- 泽维尔的方法
- 他的方法
- 默认值
损失函数
- 多项式分类的多项式交叉熵。
- 二元分类的二元交叉熵。
- 回归的平方误差。
安装
必要条件
- python 3.4或更高版本
- numpy 1.12.0或更高版本
- matplotlib
通过PIP安装DNNET。
pip install dnnet
从源安装dnnet。
dnnet不需要任何复杂的路径设置。
您只需从github下载脚本,将其放在您喜欢的任何位置,
你可以在你的脚本中添加下面这样的行。
import sys
sys.path.append('<path-to-dnnet-root-dir>')
from dnnet.neuralnet import NeuralNetwork
从头开始设置环境(可选)
在本节中,将介绍如何从头开始设置python环境。
“从头开始”意味着你应该使用全新的计算机,
没有python包(甚至python本身!)并安装了相关的库。
当您启动新的python项目时,它可能也很有用。在这种情况下,
您将部分执行以下步骤。
设置python虚拟环境
假设
- 使用Python3
- 在“/home/<;用户名>;”文档中为pyenv创建目录“
- python虚拟环境的根目录位于“/home/<;用户名”>;/work/py352_ws”
- “/home/<;用户名>;/work/py352_ws/”是您的工作目录
设置步骤
- 安装所需的软件包
$ sudo apt-get install git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev
- 安装tkinter(这是在virtualenv中使用matplotlib所必需的)
$ sudo apt-get install python3-tk python-tk tk-dev
- 安装pyenv
$ cd ~
$ git clone git://github.com/yyuu/pyenv.git ./pyenv
$ mkdir -p ./pyenv/versions ./pyenv/shims
- 设置路径
在~/.bashrc中添加以下描述
export PYENV_ROOT=${HOME}/Documents/pyenv
if [ -d "${PYENV_ROOT}" ]; then
export PATH=${PYENV_ROOT}/bin:$PATH
eval "$(pyenv init -)"
fi
$ sudo apt-get install git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev
$ sudo apt-get install python3-tk python-tk tk-dev
$ cd ~
$ git clone git://github.com/yyuu/pyenv.git ./pyenv
$ mkdir -p ./pyenv/versions ./pyenv/shims
export PYENV_ROOT=${HOME}/Documents/pyenv
if [ -d "${PYENV_ROOT}" ]; then
export PATH=${PYENV_ROOT}/bin:$PATH
eval "$(pyenv init -)"
fi
然后执行以下步骤。
$ exec $SHELL -l
$ . ~/.bashrc
- 安装pyenv virtualenv
$ cd $PYENV_ROOT/plugins
$ git clone git://github.com/yyuu/pyenv-virtualenv.git
- 安装python 3.5.2
如果要在生成的env中使用ano,
env PYTHON_CONFIGURE_OPTS=--enable-shared pyenv install 3.5.2
否则…
$ pyenv install 3.5.2
- 设置本地pyenv
$ mkdir -p ~/Work/py352_ws
$ pyenv virtualenv 3.5.2 <name of this environment>
<;此环境的名称>;可以是py352-env、python3-env或任何您喜欢的内容。
这里,假设您将环境命名为“py352_env”。
$ cd ~/Work/py352_ws
$ pyenv local py352_env
$ pip install --upgrade pip
示例
mnist
- 为mnist运行神经网络。
cd <path-to-dnnet>/examples/mnist
python mnist.py
如果出现错误“importerror:python未作为框架安装。”, 可能是因为matplotlib的问题(我在使用macos时遇到了这种情况。)
在这种情况下,请尝试以下操作。
cd ~/.matplotlib
echo "backend: TkAgg" >> matplotlibrc
在项目中使用
如果pip安装了dnnet
from dnnet.neuralnet import NeuralNetwork
如果你用git克隆dnnet
import sys
sys.path.append('<path-to-dnnet-root-dir>')
from dnnet.neuralnet import NeuralNetwork
例如,如果dnnet目录在~/work/dnnet中, 喜欢下面。
import os
import sys
sys.path.append(os.path.join(os.getenv('HOME'), 'Work/dnnet'))
from dnnet.neuralnet import NeuralNetwork