美文网首页
2018-05-30 C++& lasagne

2018-05-30 C++& lasagne

作者: 逃淘桃 | 来源:发表于2018-05-30 21:35 被阅读0次

C++

1.C++中string erase函数的使用
erase函数的原型如下:

  • string & erase(size_t pos = 0, size_t n = npos)
  • iterator erase(iterator position)
  • iterator erase(iterator first, iterator last)
    也就是说有三种用法:
  • erase(pos,n):删除从pos开始的n个字符,比如erase(0, 1)就是删除一个字符;
  • erase(position):删除position处的一个字符(position是个string类型的迭代器)
  • erase(first,last):删除从first到last之间的字符(first和last都是迭代器)

Lasagne

lasagne简单入门

1.简介

lasagne是一个基于Theano的轻量级的神经网络库,其实就是对Theano库的上层封装,使用起来更加简单,但是相应的灵活性下降。

2.建立模型

和所有的框架一样,非常重要的一个环节就是进行网络模型的定义。lasagne的网络模型建立方法和Torch比较相似,都是对各种常用网络层(layer)进行封装,我们只需要调用相应的网络层函数并把它们搭接在一起就可以了。

  • 以多层感知机模型为例
    多层感知机(Multi-layer-perceptron,MLP),此处构建一个两个隐藏层的多层感知机,并对输入增加20%的dropout,隐藏层增加50%的dropout。实际上我们的网络模型就由输入层+两个隐藏层+输出层组成,只需要对其分别进行定义即可。
  • 输入层
    输入层采用InputLayer进行定义,'InputLayer'只用于接受数据,不对数据做任何的处理,类似于TensorFlow里面的placeholder功能,定义方法如下:
l_in = lasagne.layers.InputLayer(shape=(None, 1, 28, 28), input_var=input_var)

shape里对应的四个参数分别表示:(batchsize, channels, rows, columns),input_var表示需要连接到网络输入层的theano变量,默认为none
然后对输入数据加以20%的dropout,采用DropoutLayer进行定义:

l_in_drop = lasagne.layer.DropoutLayer(l_in, p=0.2)
  • 隐藏层
    这里的隐藏层由全连接层、激活层、dropout层组成。lasagne将全连接层和激活层封装到一个函数里了,即DenseLayer,定义如下:
l_hid1 = lasagne.layers.DenseLayer(l_in_drop, 
                                  num_units=800,
                                  nonlinearity=lasagne.nonlinearities.rectify,
                                  W=lasagne.init.GlorotUniform())

num_units表示全连接层的单元数目,nonlinearity用以定义激活层函数,激活层函数封装在lasagne.nonlinearities中,这里选择的ReLU函数,而网络参数的初始化封装在lasagne.init里,只需要分别进行调用就可以了。
之后再添加50%的dropout:

l_hid1_drop = lasagne.layers.DropoutLayer(l_hid1, p=0.5)

第二个隐藏层的定义与此类似
输出层
输出层依旧是一个全连接网络,只是不同的是这里是做分类任务,所以需要将非线性函数/激活函数修改为softmax,如下:

l_out = lasagne.layers.DenseLayer(
                                 l_hid2_drop, num_units=10,
                                 nonlinearity=lasagne.nonlinearities.softmax)

这样就得到了一个包含两个隐藏层的多层感知机了。

相关文章

  • 2018-05-30 C++& lasagne

    C++ 1.C++中string erase函数的使用erase函数的原型如下: string & erase(s...

  • 调试代码遇到问题汇总

    cannot import lasagne解决方法:pip install lasagne python 无法加载...

  • 022 lasagne

    含义 lasagne就是千层面,Garfield(加菲猫)超爱吃的那种。 举例 来源 Lasagne - Wiki...

  • Lasagne简单教程

    版权所有,转载请注明出处 参考Lasagne官网tutorial进行总结而来。 一、简介 Lasagne is a...

  • 邂逅铜砭刮痧。

    2018-05-30 那时花开zwh 2018-05-30 10:26 · 字数 826 · 阅读 12 · 日记...

  • 2018-05-30

    2018-05-30 蜡笔小新坦坦 2018-05-30 09:08 · 字数 516 · 阅读 13 · 日记本...

  • 2018-05-30

    2018-05-30 蜡笔小新坦坦 2018-05-30 02:38 · 字数 488 · 阅读 1 · 日记本 ...

  • 安装theano0.8.0

    lasagne成功了但是没反应,不能识别于是稳定版 开发版 成功了。

  • 2018-05-30

    2018-05-30 戴师傅简书作者 2018-05-30 20:26 打开App (稻盛哲学学习会)打卡第71天...

  • 深度学习环境配置

    ubuntu16.04 环境 Lasagne的安装过程scipy的测试scipy.test()可能会报错。安装py...

网友评论

      本文标题:2018-05-30 C++& lasagne

      本文链接:https://www.haomeiwen.com/subject/rznxsftx.html