如何快速地将luanumpy数组中返回的Python转换为Lua Torch张量?

如何快速地将luanumpy数组中返回的Python转换为Lua Torch张量?,python,arrays,numpy,lua,torch,Python,Arrays,Numpy,Lua,Torch,我有一个Python函数,它返回一个多维numpy数组。我想从Lua调用这个Python函数,并尽快将数据转换成Lua火炬张量。我有一个解决方案,工作非常缓慢,我正在寻找一种方法,是显着更快(订单10fps或更多)。我不确定这是否可行 考虑到Facebook支持的Torch越来越受欢迎,以及Lua所缺乏的Python中广泛易用的图像处理工具,我相信这对其他人来说是有用的 我使用lunatic python的Bastibe fork从Lua调用python函数。借助于上一篇和下一篇的帮助,我想出了

我有一个Python函数,它返回一个多维numpy数组。我想从Lua调用这个Python函数,并尽快将数据转换成Lua火炬张量。我有一个解决方案,工作非常缓慢,我正在寻找一种方法,是显着更快(订单10fps或更多)。我不确定这是否可行

考虑到Facebook支持的Torch越来越受欢迎,以及Lua所缺乏的Python中广泛易用的图像处理工具,我相信这对其他人来说是有用的

我使用lunatic python的Bastibe fork从Lua调用python函数。借助于上一篇和下一篇的帮助,我想出了一些代码,这些代码可以工作,但速度太慢了。我正在使用Lua5.1和Python2.7.6,如有必要,可以对其进行更新

Lua代码:“testlua.Lua”

Python代码:“test_Python.py”

试试看,它有一个python中的lua引擎,能够与torch共享numpy内存,因此速度非常快,下面是您案例的代码:

import numpy
import Image
import lutorpy as lua

getImage = numpy.asarray(Image.open("image.jpg"))
a = torch.fromNumpyArray(getImage)

# now you can use your image as torch Tensor
# for example: use SpatialConvolution from nn to process the image
require("nn")
n = nn.SpatialConvolution(1,16,12,12)
res = n._forward(a)
print(res._size())

# convert back to numpy array
output = res.asNumpyArray()
谢谢:)我还没见过这个。我正在寻找一种在Lua中运行Python的方法,但是因为我使用了大量Lua代码,只需要少量Python。我也尝试了一下,但是我需要使用qlua而不是luajit来运行,这样我就可以使用显示窗口了。
import numpy
import os,sys
import Image

def getImage(width, height):
    return numpy.asarray(Image.open("image.jpg"))
import numpy
import Image
import lutorpy as lua

getImage = numpy.asarray(Image.open("image.jpg"))
a = torch.fromNumpyArray(getImage)

# now you can use your image as torch Tensor
# for example: use SpatialConvolution from nn to process the image
require("nn")
n = nn.SpatialConvolution(1,16,12,12)
res = n._forward(a)
print(res._size())

# convert back to numpy array
output = res.asNumpyArray()