0

Java 内でトーチからニューラル ネットワークを実行しようとしています。luaj をラッパーとして使用しています。

問題は、たとえば、共有ライブラリであるモジュールtorchに依存するモジュールが必要な場合libpaths、次のエラーがスローされることです。

module 'libpaths' not found: libpaths
no field package.preload['libpaths']
libpaths.lua

モジュールを必要とする前に、ライブラリがあるフォルダーにpackage.cpathandを設定しpackage.pathました。これは、以前はプロジェクト フォルダーであるデフォルト パスのみを検索していたためです。ただし、「require」はモジュールのpackage.pathのみを検索し、cpathは検索しないと感じています。これは、libpaths.soも検索されるためです。また、この出力にはパスからのディレクトリのみが含まれ、cpath は含まれないためです。

/home/erika/.luarocks/share/lua/5.1/libpaths.lua
/home/erika/.luarocks/share/lua/5.1/libpaths/init.lua
/home/erika/torch/install/share/lua/5.1/libpaths.lua
/home/erika/torch/install/share/lua/5.1/libpaths/init.lua
./libpaths.lua
/home/erika/torch/install/share/luajit-2.1.0-beta1/libpaths.lua
/usr/local/share/lua/5.1/libpaths.lua
/usr/local/share/lua/5.1/libpaths/init.lua

cpath と「libpath」からのパスを使用して package.searchpath() を試したところ、libpaths.so が見つかりました。いろいろ試してみたのですが、どうもうまくいかないようですので、お役に立てれば幸いです!

Lua 5.1.5 を使用しています。私の OS は Ubuntu 14.04 LTS です。

4

1 に答える 1

2

luarocks を使用してパッケージをローカルにインストールする場合、lua/luajit/torch を開始する前に環境をセットアップする必要があります。最も簡単な方法は、の出力を実行することですluarocks-5.1 path

$ luarocks-5.1 path
export LUA_PATH='/home/markus/.luarocks/share/lua/5.1/?.lua;/home/markus/.luarocks/share/lua/5.1/?/init.lua;/usr/share/lua/5.1/?.lua;/usr/share/lua/5.1/?/init.lua;./?.lua;/usr/lib/lua/5.1/?.lua;/usr/lib/lua/5.1/?/init.lua'
export LUA_CPATH='/home/markus/.luarocks/lib/lua/5.1/?.so;/usr/lib/lua/5.1/?.so;./?.so;/usr/lib/lua/5.1/loadall.so'

より快適な方法は、出力を~/.bashrc

$ luarocks-5.1 path >> ~/.bashrc

~/.bashrcログアウトおよびログインせずにリロードするには、次のようにします。source ~/.bashrc

于 2016-02-23T20:20:51.047 に答える