本篇博文是對論文DenseCap的源碼實現(xiàn)缸棵,作者是斯坦福的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),并且作者也沒有在繼續(xù)更新代碼了苦酱,所以如果你想成功運行起來的話,盡量不要用太高版本的cuda宠漩,否則可能會出現(xiàn)文件丟失錯誤(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相關(guān)依賴(如果你不使用GPU跑代碼磨澡,可以不裝這里)
luarocks install cutorch
luarocks install cunn
luarocks install cudnn
下載預(yù)訓練模型
在命令行中鍵入下面的指令,運行腳本下載預(yù)訓練模型(注意笔宿,下面的腳本文件在github上的項目代碼里犁钟,所以你要先把github上的源代碼下載下來棱诱,然后進入到項目目錄里面)
sh scripts/download_pretrained_model.sh
用圖片來測試模型
源碼中自帶了一張大象的圖片,你可以用下面的指令來對大象圖片進行測試涝动,如果你想測試自己的圖片迈勋,把圖片放到項目中的imgs
文件里,然后修改指令后面的圖片名稱為你自己圖片的名稱就可
th run_model.lua -input_image imgs/elephant.jpg
如果你沒有GPU醋粟,記得要加上-gpu -1指令來告訴模型在cpu上指令(CPU上的指令速度較慢靡菇,我自己的執(zhí)行情況是:GTX980Ti:0.3s 酷睿i5/7:5~10min)
以上指令會生成vis/data文件夾,這就是模型的運行結(jié)果昔穴,可以用下面的方式查看結(jié)果,
cd vis
python -m SimpleHTTPServer 8181(或者python -m http.server 8181)
然后提前,在瀏覽器中打開http://localhost:8181/view_results.html.
當然吗货,如果你想一次運行數(shù)張圖片,可以使用下面的指令狈网,該指令會將指定路徑下的圖片全部執(zhí)行
th run_model.lua -input_dir /path/to/my/image/folder
問題:
我遇到了以下問題宙搬,這里列出我自己的解決方法,如果你還遇到了其他不同的問題拓哺,可以留言勇垛,我會盡快答復(fù)你
問題1:cutorch問題
提示找不到cutorch,或者其他什么相關(guān)的錯誤
解決辦法:重新安裝cutorch
luarocks install cutorch
不幸的是士鸥,這個解決方法對我并沒有用闲孤,我最后發(fā)現(xiàn)是因為代碼運行的cutorch版本是5.1,而由于此時我安裝了高版本的cuda(9)烤礁,所以在使用上面的指令安裝時讼积,安裝的是cutorch 5.2,所以提示找不多5.1的cutorch脚仔,最后勤众,我重新?lián)Q回了的cuda8.0,并重新安裝cutorch鲤脏,解決了問題们颜,切換cuda版本的方法可以看這里:https://blog.csdn.net/ksws0292756/article/details/80120561
問題2:libcudd.5.so.5 找不到
主要原因還是cuda和cudnn的版本問題,我切換了cuda和cudnn的相關(guān)版本猎醇,換到cuda8.0和cudnn_v5.1以后窥突, 解決了問題