我尝试过类似的示例代码cifar.torch / nin.lua
但无论我如何尝试w / wo local,错误信息是'尝试调用全局'Block'(零值)'
我该如何解决这个问题?帮助我。
local function Block(...)
local arg = {...}
model:add(nn.SpatialConvolution(...))
model:add(nn.SpatialBatchNormalization(arg[2],1e-3))
model:add(nn.ReLU(true))
return model
end
local function createModel()
Block(3,64,3,3,1,1)
model:add(nn.SpatialMaxPooling(2,2,2,2))
Block(64,128,3,3,1,1)
model:add(nn.SpatialMaxPooling(2,2,2,2))
Block(128,256,3,3,1,1)
Block(256,256,3,3,1,1)
model:add(nn.SpatialMaxPooling(2,2,2,2))
Block(256,512,3,3,1,1)
BlocK(512,512,3,3,1,1)
model:add(nn.SpatialMaxPooling(2,2,2,2))
BlocK(512,512,3,3,1,1)
BlocK(512,512,3,3,1,1)
model:add(nn.SpatialMaxPooling(2,2,2,2))
return model
end
createModel()
print(model)
答案 0 :(得分:4)
Lua区分大小写。
Bloc k 与Bloc K
不同你有几个以captial K
结尾的函数调用您必须调用Bloc k ,因为您从未定义过函数Bloc K
Bloc K 是nil
答案 1 :(得分:1)
块(256,512,3,3,1,1)
块(512,512,3,3,1,1)
Lua区分大小写,但是您将“Block”称为“BlocK”。那些会失败。