lua: 15: неожиданный символ рядом с '[' - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь написать функцию для создания модели CNN. Я получаю следующую ошибку всякий раз, когда запускаю скрипт:

lua: 15: неожиданный символ рядом с '['

require('torch')

require('nn')

function CeateNvidiaModel()

    --The Nvidia model
    --Input dimensions
    local n_channels = 3
    local height = 66
    local width = 200
    local nvidia_model = nn.Sequential();
    --nvida_model:add(nn.Normalize()
    --Convolutional Layers
    nvidia_model:add(nn.SpatialConvolution(n_channels, 24, 5, 5, [2], [2]))
    nvidia_model:add(nn.ELU(true))
    nvidia_model:add(nn.SpatialConvolution(24, 36, 5, 5, [2], [2]))
    nvidia_model:add(nn.ELU(true))
    nvidia_model:add(nn.SpatialConvolution(36, 48, 5, 5, [2], [2]))
    nvidia_model:add(nn.ELU(true))
    nvidia_model:add(nn.SpatialConvolution(48, 64, 3, 3))
    nvidia_model:add(nn.ELU(true))
    nvidia_model:add(nn.SpatialConvolution(64, 64, 3, 3))
    nvidia_model:add(nn.ELU(true))
    -- Flatten Layer
    nvidia_model:add(nn.Reshape(1164))
    -- FC Layers
    nvida_model:add(nn.Linear(1164, 100))
    nvidia_model:add(nn.ELU(true))
    nvida_model:add(nn.Linear(100, 50))
    nvidia_model:add(nn.ELU(true))
    nvida_model:add(nn.Linear(50, 10))
    nvidia_model:add(nn.ELU(true))
    nvida_model:add(nn.Linear(10, 1))
    return nvida_model
end

1 Ответ

3 голосов
/ 27 мая 2020

Полагаю, вы путаете [] и {}. Во многих других языках вы пишете литералы массива как [1, 2, 3], но в Lua [ и ] используются только для индексации; чтобы объявить «литерал массива», вы пишете {1, 2, 3} (потому что массивы в Lua - это просто таблицы).

Сообщение об ошибке немного вводит в заблуждение; он говорит неожиданный символ рядом с '[', но на самом деле [ - это неожиданный символ.

...