lua:15: '[' 附近的意外符号

Posted

技术标签:

【中文标题】lua:15: \'[\' 附近的意外符号【英文标题】:lua:15: unexpected symbol near '['lua:15: '[' 附近的意外符号 【发布时间】:2020-09-14 10:52:04 【问题描述】:

我正在尝试编写一个函数来创建一个 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】:

我假设您混淆了[]。在许多其他语言中,您将数组字面量写为 [1, 2, 3],但在 Lua 中,[] 仅用于索引;声明一个“数组文字”,你写1, 2, 3(因为Lua中的数组只是表)。

错误信息有点误导;上面写着意料之外的符号near '[',但实际上[ 意料之外的符号。

【讨论】:

错误信息可能会误导初学者,但它是准确的。你有一个表达式列表,Lua 会尝试解决它们。它从括号内开始,然后检查左边的内容。它需要一个名字。找到一个逗号。虽然我很困惑,因为它应该在 [ 而不是 ] 旁边。也许是 OP 中的错字?

以上是关于lua:15: '[' 附近的意外符号的主要内容,如果未能解决你的问题,请参考以下文章

意外标记 `' ` 附近的语法错误

原因:意外标记“fi”附近的 Bash 语法错误

Bash 脚本:意外标记附近的语法错误?

意外标记:第 1 行第 57 列附近的 VALUES

bash - 意外标记“<”附近的语法错误

GDRIVE:意外标记“换行符”附近的语法错误