尝试调用全局变量'BlocK'(一个空值)

我已经按照cifar.torch/nin.lua中的样本代码尝试过

但是无论我如何尝试/不尝试locally,错误信息仍然是'Attempt to call global 'Block'(a nil value)'

我该如何解决?求助。

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)
点赞
用户2858170
用户2858170

Lua 是大小写敏感的。

Bloc k 和 Bloc K 不同。

你有几个以大写 K 结尾的函数调用。

你必须像从未定义函数 Bloc K 一样调用 Bloc k

Bloc K 是 nil。

2016-03-19 13:02:36
用户5675002
用户5675002
`Block(256,512,3,3,1,1)`
`BlocK(512,512,3,3,1,1)`

Lua 是大小写敏感的,但你的代码中有Block被误写作 BlocK,它们将会运行失败。

2016-03-19 13:03:01