美文网首页
源码实现:DenseCap: Fully Convolution

源码实现:DenseCap: Fully Convolution

作者: ZeroZone零域 | 来源:发表于2018-10-22 19:51 被阅读0次

    本篇博文是对论文DenseCap的源码实现,作者是斯坦福的Justin Johnson
    项目地址:https://cs.stanford.edu/people/karpathy/densecap/
    源码地址:https://github.com/jcjohnson/densecap
    论文地址:http://arxiv.org/abs/1511.07571

    注意事项:源码是15写的,所以使用的是比较老版本的cuda和cudnn(8.0 v5.1),并且作者也没有在继续更新代码了,所以如果你想成功运行起来的话,尽量不要用太高版本的cuda,否则可能会出现文件丢失错误(libcudnn (R5) not found in library path.)

    安装

    安装以下依赖:

    luarocks install torch
    luarocks install nn
    luarocks install image
    luarocks install lua-cjson
    luarocks install https://raw.githubusercontent.com/qassemoquab/stnbhwd/master/stnbhwd-scm-1.rockspec
    luarocks install https://raw.githubusercontent.com/jcjohnson/torch-rnn/master/torch-rnn-scm-1.rockspec
    

    (可选)安装GPU相关依赖(如果你不使用GPU跑代码,可以不装这里)

    luarocks install cutorch
    luarocks install cunn
    luarocks install cudnn
    

    下载预训练模型

    在命令行中键入下面的指令,运行脚本下载预训练模型(注意,下面的脚本文件在github上的项目代码里,所以你要先把github上的源代码下载下来,然后进入到项目目录里面)

     sh scripts/download_pretrained_model.sh
    

    用图片来测试模型

    源码中自带了一张大象的图片,你可以用下面的指令来对大象图片进行测试,如果你想测试自己的图片,把图片放到项目中的imgs文件里,然后修改指令后面的图片名称为你自己图片的名称就可

    th run_model.lua -input_image imgs/elephant.jpg
    

    如果你没有GPU,记得要加上-gpu -1指令来告诉模型在cpu上指令(CPU上的指令速度较慢,我自己的执行情况是:GTX980Ti:0.3s 酷睿i5/7:5~10min)

    以上指令会生成vis/data文件夹,这就是模型的运行结果,可以用下面的方式查看结果,

    cd vis
    python -m SimpleHTTPServer 8181(或者python -m http.server 8181)
    

    然后,在浏览器中打开http://localhost:8181/view_results.html.

    当然,如果你想一次运行数张图片,可以使用下面的指令,该指令会将指定路径下的图片全部执行

    th run_model.lua -input_dir /path/to/my/image/folder
    

    问题:

    我遇到了以下问题,这里列出我自己的解决方法,如果你还遇到了其他不同的问题,可以留言,我会尽快答复你

    问题1:cutorch问题
    提示找不到cutorch,或者其他什么相关的错误

    解决办法:重新安装cutorch

    luarocks install cutorch
    

    不幸的是,这个解决方法对我并没有用,我最后发现是因为代码运行的cutorch版本是5.1,而由于此时我安装了高版本的cuda(9),所以在使用上面的指令安装时,安装的是cutorch 5.2,所以提示找不多5.1的cutorch,最后,我重新换回了的cuda8.0,并重新安装cutorch,解决了问题,切换cuda版本的方法可以看这里:https://blog.csdn.net/ksws0292756/article/details/80120561

    问题2:libcudd.5.so.5 找不到
    主要原因还是cuda和cudnn的版本问题,我切换了cuda和cudnn的相关版本,换到cuda8.0和cudnn_v5.1以后, 解决了问题

    相关文章

      网友评论

          本文标题:源码实现:DenseCap: Fully Convolution

          本文链接:https://www.haomeiwen.com/subject/ercnzftx.html