【问题标题】:Bug encountered When running Google's Deep Q Network Code运行 Google 的 Deep Q 网络代码时遇到的错误
【发布时间】:2015-06-16 08:17:24
【问题描述】:

用于 Atari Games 的 Google 深度 Q 网络现已推出。

https://github.com/rahular/deepmind-dqn

当我使用 GPU 设置运行它时

./run_gpu <game name>

我遇到了这个错误

../torch/bin/luajit: ./convnet.lua:22: attempt to call local 'convLayer' (a nil value)
stack traceback:
    ./convnet.lua:22: in function 'network'
    ./NeuralQLearner.lua:89: in function '__init'
    ...einforcement_Learning/torch/share/lua/5.1/torch/init.lua:51: in function <...einforcement_Learning/torch/share/lua/5.1/torch/init.lua:47>
    [C]: at 0x7f419423d380
    ./initenv.lua:133: in function 'setup'
    train_agent.lua:52: in main chunk
    [C]: at 0x00406230

导致这个问题的代码在这个文件https://github.com/rahular/deepmind-dqn/blob/master/dqn/convnet.lua

它在这个函数中

function create_network(args)

    local net = nn.Sequential()
    net:add(nn.Reshape(unpack(args.input_dims)))

    --- first convolutional layer
    local convLayer = nn.SpatialConvolution

    if args.gpu >= 0 then
        net:add(nn.Transpose({1,2},{2,3},{3,4}))
        convLayer = nn.SpatialConvolutionCUDA
    end

    net:add(convLayer(args.hist_len*args.ncols, args.n_units[1],
                        args.filter_size[1], args.filter_size[1],
                        args.filter_stride[1], args.filter_stride[1],1))
    net:add(args.nl())

net:add(convLayer( 是第 22 行。

我使用了gpu设置,所以看起来

convLayer =  nn.SpatialConvolutionCUDA

导致 convLayer 为 nil。

有人知道为什么 nn.SpatialConvolutionCUDA 返回 nil 吗?

【问题讨论】:

  • 好吧,nn.SpatialConvolutionCUDA 是什么,它在哪里设置?我最初的猜测是您的 GPU 不支持 CUDA,或者至少不支持所需的版本。
  • 抱歉回复晚了。我使用 theano 测试了 GPU,所以我猜它已经安装了。

标签: lua machine-learning deep-learning torch


【解决方案1】:

代码最初是带有 GPU 支持的,还是您自己添加的?

您应该替换已弃用的层,即替换:

net:add(nn.Transpose({1,2},{2,3},{3,4}))
convLayer = nn.SpatialConvolutionCUDA

convLayer = nn.SpatialConvolution

检查层的文档。

编辑:使用this branch,我已修复它以支持 GPU。

【讨论】:

【解决方案2】:

找到了解决办法。

使用这个 github 分支

https://github.com/soumith/deepmind-atari

克隆这个分支后,使用 luarocks 安装 cutorch 和 cunn。

现在您可以运行代码了。

【讨论】:

    猜你喜欢
    • 2020-08-16
    • 2022-01-11
    • 2022-01-26
    • 1970-01-01
    • 2023-02-19
    • 2018-08-28
    • 2014-10-27
    • 1970-01-01
    相关资源
    最近更新 更多