一个轻量级的库,用于在theano中构建和训练神经网络

Lasagne的Python项目详细描述


http://img.shields.io/badge/docs-latest-brightgreen.svghttps://travis-ci.org/Lasagne/Lasagne.svg?branch=masterhttps://img.shields.io/coveralls/Lasagne/Lasagne.svghttps://img.shields.io/badge/license-MIT-blue.svghttps://zenodo.org/badge/16974/Lasagne/Lasagne.svg

千层面

千层面是一个轻量级的库,用于在意大利建立和训练神经网络。 它的主要功能是:

  • 支持前馈网络,如卷积神经网络(CNN)。 包括长短期记忆(LSTM)和任何 其组合
  • 允许多输入多输出的体系结构,包括 辅助分类器
  • 许多优化方法包括nesterov动量、rmsprop和adam
  • 可自由定义的成本函数,无需推导梯度,因为 Theano的符号微分
  • 由于没有表达式编译器,对CPU和GPU的透明支持

它的设计受six principles

  • 简单:易于使用,易于理解,易于扩展 便于在研究中使用
  • 透明性:不要隐藏在抽象之后,直接处理和 返回ano表达式或python/numpy数据类型
  • 模块化:允许所有部分(层、正则化器、优化器等) 独立于千层面使用
  • 实用主义:简化常见用例,不要高估不常见的用例
  • 限制:不要妨碍用户使用他们决定不使用的功能
  • 专注:“做一件事,做好它”

安装

简而言之,您可以安装已知兼容版本的 千层面开发版本通过:

pip install -r https://raw.githubusercontent.com/Lasagne/Lasagne/master/requirements.txt
pip install https://github.com/Lasagne/Lasagne/archive/master.zip

有关更多详细信息和备选方案,请参见Installation instructions

文件

在线提供文档:http://lasagne.readthedocs.org/

有关支持,请参阅lasagne-users mailing list

示例

importlasagneimporttheanoimporttheano.tensorasT# create Theano variables for input and target minibatchinput_var=T.tensor4('X')target_var=T.ivector('y')# create a small convolutional neural networkfromlasagne.nonlinearitiesimportleaky_rectify,softmaxnetwork=lasagne.layers.InputLayer((None,3,32,32),input_var)network=lasagne.layers.Conv2DLayer(network,64,(3,3),nonlinearity=leaky_rectify)network=lasagne.layers.Conv2DLayer(network,32,(3,3),nonlinearity=leaky_rectify)network=lasagne.layers.Pool2DLayer(network,(3,3),stride=2,mode='max')network=lasagne.layers.DenseLayer(lasagne.layers.dropout(network,0.5),128,nonlinearity=leaky_rectify,W=lasagne.init.Orthogonal())network=lasagne.layers.DenseLayer(lasagne.layers.dropout(network,0.5),10,nonlinearity=softmax)# create loss functionprediction=lasagne.layers.get_output(network)loss=lasagne.objectives.categorical_crossentropy(prediction,target_var)loss=loss.mean()+1e-4*lasagne.regularization.regularize_network_params(network,lasagne.regularization.l2)# create parameter update expressionsparams=lasagne.layers.get_all_params(network,trainable=True)updates=lasagne.updates.nesterov_momentum(loss,params,learning_rate=0.01,momentum=0.9)# compile training function that updates parameters and returns training losstrain_fn=theano.function([input_var,target_var],loss,updates=updates)# train network (assuming you've got some training data in numpy arrays)forepochinrange(100):loss=0forinput_batch,target_batchintraining_data:loss+=train_fn(input_batch,target_batch)print("Epoch %d: Loss %g"%(epoch+1,loss/len(training_data)))# use trained network for predictionstest_prediction=lasagne.layers.get_output(network,deterministic=True)predict_fn=theano.function([input_var],T.argmax(test_prediction,axis=1))print("Predicted class for first test input: %r"%predict_fn(test_data[0]))

有关全功能示例,请参见examples/mnist.py, 并检查Tutorial是否深入 同样的解释。更多示例、代码片段和 最近的研究论文保存在单独的Lasagne Recipes存储库中。

发展

千层面正在制作中,欢迎输入。

详情请参阅Contribution instructions 你怎么能做出贡献!

变更日志

0.1(2015-08-13)

第一次释放。

  • 核心贡献者,按字母顺序排列:
    • 埃里克·巴滕贝格(@ebattenberg)
    • 桑德·迪勒曼(@benanne)
    • 丹尼尔·努里(@dnouri)
    • 埃本·奥尔森(@eben olson)
    • 阿荣·范登诺德(@avdnoord)
    • 科林·拉菲尔(@craffel)
    • 简·施吕特(@f0k)
    • 瑟伦·卡埃森德比(@s kaae)
  • 额外贡献者,按时间顺序排列:
    • daniel maturana(@dimatura):文档,cudnn层,lrn
    • 乔纳斯降级(@317070):获取所有参数值()修复
    • jack kelly(@jackkelly):帮助处理重复层
    • gabor takács(@takacsg84):支持宽面条中的可广播参数。更新
    • Diogo Moitinho de Almeida(@diogo149):mnist示例修复
    • brian mcfee(@bmcfee):maxpool2dlayer修复
    • martin thoma(@martinthoma):文档
    • Jeffrey de Fauw(@jeffreydf):文档,adam fix
    • 迈克尔·海尔曼(@mheilman):非线性层,千层面,随机
    • gregory sanders(@instagibbs):文档修复
    • jon crall(@erotemic):检查非正输入形状
    • hendrik weideman(@hjweide):设置所有参数的值()test,maxpool2dcclayer fix
    • Kashif Rasul(@kashif):亚当简化
    • peter de rivaz(@peterdererivaz):文档修复

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

推荐PyPI第三方库


热门话题
java为什么这个方法会重复它的循环?   swing如何在Java中拖放鼠标时获取鼠标信息?   java如何处理异常并向SSE客户端发送错误   java在一个我一直试图制作的简单计算器上遇到了问题   java如何使用黄瓜。类和参数化。在同一个跑步者级别上   测试并发性的javajunit   java致命错误:jenkins的身份验证失败   只要我修改服务器,java SSE客户端就会停止工作(服务器发送事件)   java通过JSP获取JSON到JS   java在3d应用程序中集成卫星图像或地图   如何为Java8语言环境实现自己的自定义国家名称列表   java SonarLint | SonarQube批量创建@SuppressWarnings   java删除填充矩形   java hibernate一对多出错,外键错误   java如何获取图像是否被触摸而不是透明背景?LIBGDX   JAVA网SocketException:使用Tomcat重置连接   如何使用java检查文件是SSL证书还是常规文件?   java如何在安卓中使用类似C#等的文件选择器或openfiledialog打开文本文件   java非静态createnewfrom方法?   类在java中将具有多个变量类型的对象传递到arraylist时遇到问题