尝试训练 SeGAN 模型时尝试调用本地 'callback'(零值)错误
Attempt to call local 'callback' (a nil value) error while trying to train SeGAN model
我正在尝试使用 Geforce RTX 2060 在 ubuntu 18.04 上实现“SeGAN:分割和生成不可见”论文。我已经安装了驱动程序、CUDA、cuDNN、Torch7 和依赖项,并下载并解压了数据集和权重文件夹,并为它们制作了 link。
我尝试用这行代码训练模型:
th main.lua -baseLR 1e-3 -end2end -istrain "train"
但是我得到了这个错误:
define model netG...
/home/darya/distro/install/bin/luajit: /home/darya/distro/install/share/lua/5.1/nn/Module.lua:352: attempt to call local 'callback' (a nil value)
stack traceback:
/home/darya/distro/install/share/lua/5.1/nn/Module.lua:352: in function 'apply'
/home/darya/SeGAN/networks/End2EndNetwork.lua:81: in function 'defineG'
/home/darya/SeGAN/networks/End2EndNetwork.lua:130: in function 'init_networks'
/home/darya/SeGAN/networks/End2EndNetwork.lua:343: in main chunk
[C]: in function 'dofile'
main.lua:265: in main chunk
[C]: in function 'dofile'
...rya/distro/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk
[C]: at 0x55e8fde0f570
我不知道我做错了什么,而且因为我没有太多经验,所以我很困惑。
有人可以帮我解决这个问题吗?非常感谢。
github repository for SeGAN segmenting and generating the invisible
来自链接的 GitHub 存储库:
netG:apply(weights_init)
weights_init
应该是一个函数值但为零。
在 Module:apply
中导致 Torch nn 的 Module.lua Line352 中的 callback(self)
失败。
看来必须有人实现该功能。
喜欢在https://github.com/phillipi/pix2pix/blob/89ff2a81ce441fbe1f1b13eca463b87f1e539df8/train.lua, which https://github.com/ehsanik/SeGAN/blob/d29e0a5ac08f093b87dc82af3707d50107900d04/networks/End2EndNetwork.lua#L73指的是。
哪里
local function weights_init(m)
local name = torch.type(m)
if name:find('Convolution') then
m.weight:normal(0.0, 0.02)
m.bias:fill(0)
elseif name:find('BatchNormalization') then
if m.weight then m.weight:normal(1.0, 0.02) end
if m.bias then m.bias:fill(0) end
end
end
我正在尝试使用 Geforce RTX 2060 在 ubuntu 18.04 上实现“SeGAN:分割和生成不可见”论文。我已经安装了驱动程序、CUDA、cuDNN、Torch7 和依赖项,并下载并解压了数据集和权重文件夹,并为它们制作了 link。 我尝试用这行代码训练模型:
th main.lua -baseLR 1e-3 -end2end -istrain "train"
但是我得到了这个错误:
define model netG...
/home/darya/distro/install/bin/luajit: /home/darya/distro/install/share/lua/5.1/nn/Module.lua:352: attempt to call local 'callback' (a nil value)
stack traceback:
/home/darya/distro/install/share/lua/5.1/nn/Module.lua:352: in function 'apply'
/home/darya/SeGAN/networks/End2EndNetwork.lua:81: in function 'defineG'
/home/darya/SeGAN/networks/End2EndNetwork.lua:130: in function 'init_networks'
/home/darya/SeGAN/networks/End2EndNetwork.lua:343: in main chunk
[C]: in function 'dofile'
main.lua:265: in main chunk
[C]: in function 'dofile'
...rya/distro/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk
[C]: at 0x55e8fde0f570
我不知道我做错了什么,而且因为我没有太多经验,所以我很困惑。 有人可以帮我解决这个问题吗?非常感谢。
github repository for SeGAN segmenting and generating the invisible
来自链接的 GitHub 存储库:
netG:apply(weights_init)
weights_init
应该是一个函数值但为零。
在 Module:apply
中导致 Torch nn 的 Module.lua Line352 中的 callback(self)
失败。
看来必须有人实现该功能。
喜欢在https://github.com/phillipi/pix2pix/blob/89ff2a81ce441fbe1f1b13eca463b87f1e539df8/train.lua, which https://github.com/ehsanik/SeGAN/blob/d29e0a5ac08f093b87dc82af3707d50107900d04/networks/End2EndNetwork.lua#L73指的是。
哪里
local function weights_init(m)
local name = torch.type(m)
if name:find('Convolution') then
m.weight:normal(0.0, 0.02)
m.bias:fill(0)
elseif name:find('BatchNormalization') then
if m.weight then m.weight:normal(1.0, 0.02) end
if m.bias then m.bias:fill(0) end
end
end