【问题标题】: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

【问题讨论】:

    标签: lua torch


    【解决方案1】:

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

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

    【讨论】:

    • 错误信息可能会误导初学者,但它是准确的。你有一个表达式列表,Lua 会尝试解决它们。它从括号内开始,然后检查左边的内容。它需要一个名字。找到一个逗号。虽然我很困惑,因为它应该在 [ 而不是 ] 旁边。也许是 OP 中的错字?
    猜你喜欢
    • 2022-01-16
    • 2013-01-16
    • 2023-03-27
    • 2012-10-23
    • 2022-10-13
    • 2015-09-24
    • 1970-01-01
    • 2023-03-18
    • 2020-02-21
    相关资源
    最近更新 更多