私は多次元配列を返すPython関数を持っています。私はこのPython関数をLuaから呼び出し、できるだけ早くLua Torch Tensorにデータを取得したいと考えています。私は非常にゆっくりと動作するソリューションを持っており、大幅に高速(10fps以上のオーダー)の方法を探しています。これが可能かどうかは分かりません。私は、これはFacebookの人気の高まりを考慮し、他の人に使用されるであろうと信じて返されたPython-in-Luaのnumpy配列をLua Torch Tensorに素早く変換するには?
はトーチとLuaが欠けているのはPythonで利用可能な大規模な簡単に使用できる画像処理ツールを支持しました。
LuaからPython関数を呼び出すために、lunatic-pythonのBastibeフォークを使用しています。この先のquestionとこのdocumentationの助けを借りて、私は動作するいくつかのコードを考え出しましたが、遅すぎます。私はLua 5.1とPython 2.7.6を使用しており、必要に応じてこれらを更新できます。
Luaのコード: "test_lua.lua"
require 'torch'
print(package.loadlib("libpython2.7.so", "*"))
require("lua-python")
getImage = python.import "test_python".getImage
pb = python.builtins()
function getImageTensor(pythonImageHandle,width,height)
imageTensor = torch.Tensor(3,height,width)
image_0 = python.asindx(pythonImageHandle(height,width))
for i=0,height-1 do
image_1 = python.asindx(image_0[i])
for j=0,width-1 do
image_2 = python.asindx(image_1[j])
for k=0,2 do
-- Tensor indices begin at 1
-- User python inbuilt to-int function to return integer
imageTensor[k+1][i+1][j+1] = pb.int(image_2[k])/255
end
end
end
return imageTensor
end
a = getImageTensor(getImage,600,400)
Pythonのコード: "test_python.py"
import numpy
import os,sys
import Image
def getImage(width, height):
return numpy.asarray(Image.open("image.jpg"))
ありがとう:)これはまだわかりません。私はLuaでPythonを実行する方法を探していましたが、大量のLuaコードを扱っていて、少量のPythonしか必要としませんでした。私はディスプレイで動作することができるようにqluaではなくluajitで実行するために必要なしかし、私はまた、[リンク](https://github.com/facebook/fblualib/blob/master/fblualib/python/README.mdに)試してみました窓。 –