Как лучше всего выполнить преобразование между LuaJIT ffi cdata [1] и Torch Tensor [2].
Согласно ответу Майка в списке рассылки lua-user [3], если мы действительно хотим преобразовать cdata в простую таблицу lua, мы должны сделать цикл для копирования каждого элемента в новый созданный. И на самом деле Torch Tensor предоставляет некоторый интерфейс для лучшего доступа к LuaJIT ffi [4]. Итак, мое текущее решение - сначала выполнить цикл и преобразовать cdata в простую таблицу lua, а затем вызвать функцию построения тензора, которая создает тензор из таблицы [5].
Но на самом деле в моем случае мне нужно очень часто делать подобное преобразование между LuaJIT ffi cdata и Torch Tensor, есть ли лучший подход, а не копирование цикла?
- [1] http://luajit.org/ext_ffi_api.html (
Creating cdata Objects
Раздел) - [2] https://github.com/torch/torch7/blob/master/doc/tensor.md
- [3] http://lua-users.org/lists/lua-l/2011-03/msg00584.html
- [4] https://github.com/torch/torch7/blob/master/doc/tensor.md#luajit-ffi-access
- [5] https://github.com/torch/torch7/blob/master/doc/tensor.md#torchtensortable