深层神经网络。

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

然后执行以下步骤。

   $ 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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JAVAutil。整数java的扫描器键盘输入   java通知运行后立即崩溃   java如何在一个只能由类修改而不能由其实例修改的类中生成静态变量?   数据库Java字段猜测   返回值周围的java括号为什么?   java Android更新通讯录中的联系人   一个消费者正在读取数据   java是否可以通过编程方式为蓝牙配对设置pin?   java Spring引导和buildResponseEntity()   java为什么序列化可以在没有实现可序列化的情况下工作   Java同步无助于相互排斥   twitter Java Twitter4J未在推文下显示源标签   为什么Javasocket不支持中断处理?