Как вызвать скрипт lua, который использует пакеты Torch7 из c ++?

У меня есть исходный код C ++ под названием DeepQ.cpp, из которого я пытаюсь вызвать определенные функции в сценарии lua DeepQLearner.lua. Этот скрипт lua использует пакеты Torch7. Я знаю, как вызвать простой сценарий Lua из C ++, но кажется, что ресурсов для изучения того, как включить в него Torch, не так много. Мои сценарии DeepQ.cpp и DeepQLearner.lua следующие:

DeepQ.cpp

#include <iostream>
#include <cstdlib>

extern "C" {
#include "lua.h"#include "lualib.h"#include "lauxlib.h"}

using namespace std;
lua_State* L;
int main (int argc, char** argv)
{
L = lua_open();

//load Lua base libraries
luaL_openlibs(L);

// initialize Lua
luaL_dofile(L, "/home/sp/DeepL/DeepQLearner.lua");

lua_getglobal(L, "initialize");
lua_call(L, 0, 1);

return(0)
}

DeepQLearner.lua

require 'cutorch'
require 'cunn'
require 'image

function initialize()
-- some code here
end

Это мой CMakeLists.txt, который прекрасно работает для вызова сценариев lua, если не используются модули Torch:

cmake_minimum_required (VERSION 2.4.6)
project (DeepL)

set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
set(CMAKE_BUILD_TYPE RelWithDebInfo)

find_package(Lua51 REQUIRED)

include_directories (
${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${LUA_INCLUDE_DIR}
)

add_executable (${PROJECT_NAME} src/DeepQ.cpp)
target_link_libraries (${PROJECT_NAME} lua5.1)

Я думаю, что это не работает в случае Torch, потому что Torch по умолчанию использует LuaJIT. В CMakeLists.txt я пытался сделать find_package(LuaJIT REQUIRED) но безуспешно Как изменить CMakeLists.txt так, чтобы код lua выполнялся с LuaJIT вместо Lua5.1, и пакеты Torch были правильно найдены, и какие другие файлы заголовков необходимо включить в файл .cpp? Заранее спасибо.

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]