试图调用全局'BlocK'(零值)

时间:2016-03-19 12:35:55

标签: lua

我尝试过类似的示例代码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)

2 个答案:

答案 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”。那些会失败。