Torch / Lua Ошибка сегментации (дамп ядра) Проблема - PullRequest
0 голосов
/ 27 мая 2020

Я выполнил этот код простой классификации NN XOR и получил сообщение «Ошибка сегментации (дамп ядра)». До конца генерации данных все работает нормально, я думаю, потому что я попробовал строку print () и это появляется как результат. Но после этого не отображается.

require('torch')
require('nn')

-- Model 
mlp = nn.Sequential()
inputs = 2 
outputs = 1 
HUs = 20

mlp:add(nn.Linear(inputs, HUs))
mlp:add(nn.Tanh())
mlp:add(nn.Linear(HUs, outputs))

-- Loss function
criterion = nn.MSECriterion()

-- Training
-- Create Data on the fly to feed Network
for i = 1,2500 do
    -- Random sample
    local input=torch.randn(2);
    local output=torch.Tensor(1);
    -- Cal label for XOR function
    if input[1]*input[2]>0 then
        output[1] = -1
    else
        output[1] = 1
    end

    -- Feed it to NN 
    criterion:forward(mlp:forward(input), output)

    -- Train 
    -- (1) Zero gradients accumulation
    mlp:ZeroGradParameters()
    -- (2) Accumulate gradients
    mlp:backward(input, criterion:backward(mlp.output, output))
    -- (3) update parameters with lr = 0.01 
    mlp:updateParameters(0.01)
end

x = torch.Tensor(2)
x[1] =  0.5
x[2] =  0.5
print(x)
print(mlp:forward(x))
...