(原)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 阅读(1080) 评论(0) 编辑 收藏 举报