e-lab / torch-toolbox

A collection of snippets and libraries for Torch from e-Lab
https://engineering.purdue.edu/elab/
199 stars 64 forks source link

Installing weight-init.lua #27

Open singam-sanjay opened 6 years ago

singam-sanjay commented 6 years ago

I need to use weight-init.lua in my project and would prefer to use it in a clean way, e.g. by placing it in the search path of th.

To this end, I created a directory named "weight-init" under /extra and copied the contents of torch-toolbox/Weight-Init into it and made appropriate changes to /extra/CMakeLists.txt and added /extra/weight-init/CMakeLists.txt`

diff --git a/extra/CMakeLists.txt b/extra/CMakeLists.txt
index 903ff3b..94ff2ed 100644
--- a/extra/CMakeLists.txt
+++ b/extra/CMakeLists.txt
@@ -5,6 +5,7 @@ ADD_SUBDIRECTORY(nngraph)
 ADD_SUBDIRECTORY(nnx)
 ADD_SUBDIRECTORY(threads)
 ADD_SUBDIRECTORY(argcheck)
+ADD_SUBDIRECTORY(weight-init)

 IF (WITH_CUDA STREQUAL ON)
  ADD_SUBDIRECTORY(cutorch)
diff --git a/extra/weight-init/CMakeLists.txt b/extra/weight-init/CMakeLists.txt
new file mode 100644
index 0000000..2b2ad94
--- /dev/null
+++ b/extra/weight-init/CMakeLists.txt
@@ -0,0 +1,11 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6 FATAL_ERROR)
+CMAKE_POLICY(VERSION 2.6)
+
+FIND_PACKAGE(Torch REQUIRED)
+
+FILE(GLOB luasrc *.lua)
+
+ADD_TORCH
```_PACKAGE(weight-init "" "${luasrc}")
+

But, "weight-init.lua" is nowhere to be seen in th's search path,

th> require('weight-init')(1, 'xavier_caffe')
...user/Software/torch/install/share/lua/5.1/trepl/init.lua:389: module 'weight-init' not found:No LuaRocks module found for weight-init
        no field package.preload['weight-init']
        no file '/home/user/.luarocks/share/lua/5.1/weight-init.lua'
        no file '/home/user/.luarocks/share/lua/5.1/weight-init/init.lua'
        no file '/home/user/Software/torch/install/share/lua/5.1/weight-init.lua'
        no file '/home/user/Software/torch/install/share/lua/5.1/weight-init/init.lua'
        no file './weight-init.lua'
        no file '/home/user/Software/torch/install/share/luajit-2.1.0-beta1/weight-init.lua'
        no file '/usr/local/share/lua/5.1/weight-init.lua'
        no file '/usr/local/share/lua/5.1/weight-init/init.lua'
        no file '/home/user/.luarocks/lib/lua/5.1/weight-init.so'
        no file '/home/user/Software/torch/install/lib/lua/5.1/weight-init.so'
        no file '/home/user/Software/torch/install/lib/weight-init.so'
        no file './weight-init.so'
        no file '/usr/local/lib/lua/5.1/weight-init.so'
        no file '/usr/local/lib/lua/5.1/loadall.so'
stack traceback:
        [C]: in function 'error'
        ...user/Software/torch/install/share/lua/5.1/trepl/init.lua:389: in function 'require'
        [string "_RESULT={require('weight-init')(1, 'xavier_ca..."]:1: in main chunk
        [C]: in function 'xpcall'
        ...user/Software/torch/install/share/lua/5.1/trepl/init.lua:661: in function 'repl'
        ...ware/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:204: in main chunk
        [C]: at 0x00406651

What am I missing in CMakeLists ? Or is there another way access this function in a clean way ?