(原)torch7中添加新的层

转载请注明出处:

http://www.cnblogs.com/darkknightzh/p/6069627.html

参考网址:

http://torch.ch/docs/developer-docs.html

https://www.zhihu.com/question/34091628?sort=created

 

1. 结合Inception文件,新建InceptionX.lua,并将Inception内容复制到InceptionX.lua中。

2. 在dpnn的文件夹(如/home/XXX/torch/install/share/lua/5.1/dpnn)内的init.lua中,添加

require('dpnn.InceptionX')

使用的时候:

require”dpnn”
local net = nn.Sequential()
  net:add(nn.InceptionHisign{
     inputSize = 192,
     kernelSize = {3, 5},
     kernelStride = {1, 1},
     outputSize = {128, 32},
     reduceSize = {96, 16, 32, 64},
     pool = nn.SpatialMaxPooling(3, 3, 1, 1, 1, 1),
     batchNorm = true
   })

  print(net)

可以正常使用:

说明:1. 本帖只是在torch的dpnn中添加新层的简单的例子,按照自己的要求修改InceptionX.lua即可。

2. 第2步是必不可少的,否则无法找到自己添加的层。

3. 一般来说,自己添加的InceptionX.lua中,只需要修改__init、updateOutput、updateGradInput、accGradParameters、reset这几个函数就可以了(这个地方目前不是很确定,因为只修改了__init函数)。

4. 更详细的介绍,可以见两个参考网址。有关于在lua level添加层,和在c level添加层的具体介绍。

posted on 2016-11-16 15:10  darkknightzh  阅读(1078)  评论(0编辑  收藏  举报

导航