2015-05-26 3 views
2

Есть ли способ конвертировать cdata в userdata? Как я могу использовать C api для push/retrieve cdata в/из стека?Luajit и Torch7: доступ к объектам типа cdata от Torch7 C api

Редактировать: Оригинальное название, упомянутое luajit, но не факел. В этом контексте другие ответы рядом с тем, который я, наконец, подал себе (, например, wolfgang's), сделал прекрасный смысл.

+1

Показать конкретные коды и сообщения об ошибках, в противном случае этого не произошло. –

+2

У меня нет сообщений об ошибках, я просто хочу знать, есть ли способ сделать это. – Ash

+0

Хорошо, спасибо вам обоим. Вы были чрезвычайно полезны. – Ash

ответ

1

CDATA Я пытался получить доступ был данные тензорного объекта из torch7, я, наконец, нашел способ с помощью torch7 C API, я отправлю его здесь только в случае, если кто-то считает это полезным:

#include <TH/TH.HW> 
#include <TH/THStorage.h> 
#include <TH/THTensor.h> 

А затем, чтобы получить тензор называется "an_image" в коде горелки:

lua_getglobal(L,"an_image");//assuming it goes on top of the stack 
THDoubleTensor*data=(THDoubleTensor*)luaT_toudata(L,-1,"torch.DoubleTensor"); 

И, наконец, дали буфер Dest двойников,

memcpy(dest,data->storage->data,n*sizeof(double)); 
3

Там нет расширения к API Lua C, чтобы получить доступ к CDATA объектов, как создатель библиотеки FFI LuaJIT в.

Итак, простой и рекомендуемый способ - это выполнить сортировку со стороны Lua, если вы имеете дело с cdata. Итак, вызовите функцию C из Lua и передайте в качестве параметра значение cdata.

 Смежные вопросы

  • Нет связанных вопросов^_^