原文:https://www.zhihu.com/question/34091628
经过实践,补充了一些细节。
分两种情况:
所有运算均能通过Tensor自带的操作来完成,这样只要写一个lua文件就行,然后直接require就可以使用了,非常方便。
所有运算均能通过Tensor自带的操作来完成,这样只要写一个lua文件就行,然后直接require就可以使用了,非常方便。
对于第一种情况:
具体来说,lua文件写在哪呢,经过我自己的实验,我们首先来看torch目录树中的两个包含相似内容的路径:
- torch/install/share/lua/5.1/nn
- 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
例子以后再补充。