torch中添加新层

原文:https://www.zhihu.com/question/34091628

经过实践,补充了一些细节。

分两种情况:

  1. 所有运算均能通过Tensor自带的操作来完成,这样只要写一个lua文件就行,然后直接require就可以使用了,非常方便。

  2. 所有运算均能通过Tensor自带的操作来完成,这样只要写一个lua文件就行,然后直接require就可以使用了,非常方便。

对于第一种情况:

具体来说,lua文件写在哪呢,经过我自己的实验,我们首先来看torch目录树中的两个包含相似内容的路径:

  1. torch/install/share/lua/5.1/nn
  2. torch/extra/nn
    第二个路径可以看作是源代码路径,在该路径下放置新编好的.lua文件,并在该路径的 "init.lua" 文件末尾增添 require('nn.NewLayer') 语句。NB: init.lua 文件在 require('nn')语句后会自动执行。

接着执行如下命令:

cd torch/extra/nn/
luarocks make rocks/nn-scm-1.rockspec

.lua文件(包括 NewLayer.lua 和 init.lua )就会被复制(也就是安装)到第一个路径,这样才可以在终端th中使用。当然也可以直接在第一个路径中写一个新的 .lua 文件,但是这样貌似不规范(请大神解释luarocks这样设计的机制)

对于第二种情况:

具体来说,这种情况必须经过编译安装。也就是必须执行如下命令:

cd torch/extra/nn/
luarocks make rocks/nn-scm-1.rockspec

例子以后再补充。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容