Вызов функции lua (с требованием ‘nn’) в переполнении стека

У меня есть функция Lua:

require 'nn'
require 'image'
require 'torch'
require './lib/data_augmentation'
function predict (x) do
model = torch.load("trained.t7")
img = image.load(x)
img_tensor = torch.DoubleTensor(2, 3, 32, 32)
img_tensor[1]:copy(img)
x = data_augmentation(img_tensor[1])
preprocessing(x,params)
preds = torch.Tensor(4):zero()
step = 64
for j = 1, x:size(1), step do
batch = torch.Tensor(step, x:size(2), x:size(3), x:size(4)):zero()
n = step
if j + n > x:size(1) then
n = 1 + n - ((j + n) - x:size(1))
end
batch:narrow(1, 1, n):copy(x:narrow(1, j, n))
z = model:forward(batch):float()
for k = 1, n do
preds = preds + z[k]
end
end
preds:div(x:size(1))
confidences, indices = torch.sort(preds,true)
return indices[1]
end
end

Я хочу вызвать эту функцию в C ++, но получаю ошибку:

PANIC: unprotected error in call to Lua API (attempt to call a nil value)

из-за необходимости «…»

Что я должен сделать, чтобы C ++ мог распознавать все пакеты или другие сценарии Lua (например, data_augmentation)?

1

Решение

У меня была такая же проблема на моем Mac и решил ее с

source ~/.profile

затем запускается скрипт lua.

Полные инструкции можно найти здесь: torch.ch

# On Linux with bash
source ~/.bashrc
# On Linux with zsh
source ~/.zshrc
# On OSX or in Linux with none of the above.
source ~/.profile
0

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

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

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