cuDNN兼容性问题造成的caffe/mnist,py-faster-rcnn/demo运行结果错误
問題描述
我有兩臺電腦,一臺筆記本GTX965M顯卡,臺式機是GTX1060顯卡
兩臺電腦上的軟件環(huán)境都一樣:ubuntu16+cuda8.0+cuDNN4,顯卡驅(qū)動nvidia-378
在筆記本上運行Caffe帶的MNIST手寫體識別訓(xùn)練,和py-faster-rcnn的目標檢測演示程序(demo.py)很正常(GPU,CPU模式都正常),
在臺式機上運算,CPU模式正常,但是GPU模式下結(jié)果居然不對了:
以下是MNIST訓(xùn)練的運算結(jié)果
I0316 12:42:03.299001 12558 solver.cpp:454] Snapshotting to binary proto file examples/mnist/lenet_iter_10000.caffemodel
I0316 12:42:03.303056 12558 sgd_solver.cpp:273] Snapshotting solver state to binary proto file examples/mnist/lenet_iter_10000.solverstate
I0316 12:42:03.305409 12558 solver.cpp:317] Iteration 10000, loss = 2.29934
I0316 12:42:03.305425 12558 solver.cpp:337] Iteration 10000, Testing net (#0)
I0316 12:42:03.350900 12558 solver.cpp:404] Test net output #0: accuracy = 0.1135
I0316 12:42:03.350924 12558 solver.cpp:404] Test net output #1: loss = 2.3011 (* 1 = 2.3011 loss)
I0316 12:42:03.350927 12558 solver.cpp:322] Optimization Done.
I0316 12:42:03.350930 12558 caffe.cpp:254] Optimization Done.
正常情況下10000次迭代后的精度應(yīng)該是0.99左右,但現(xiàn)在居然是 0.1135 !
對于10個數(shù)字而言這基本上就是瞎猜的精度啊。
運算py-faster-rcnn的demo程序如下,
Loaded network /home/guyadong/tmp/py-faster-rcnn/data/faster_rcnn_models/VGG16_faster_rcnn_final.caffemodel
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for data/demo/000456.jpg
Detection took 0.084s for 300 object proposals
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for data/demo/000542.jpg
Detection took 0.081s for 259 object proposals
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for data/demo/001150.jpg
Detection took 0.067s for 223 object proposals
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for data/demo/001763.jpg
Detection took 0.066s for 201 object proposals
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Demo for data/demo/004545.jpg
Detection took 0.066s for 172 object proposals
正常情況下,最后應(yīng)該顯示畫了目標標注矩形框的圖像,然鵝現(xiàn)在沒有任何結(jié)果圖像顯示。。。而且每個檢測執(zhí)行時間都在幾十毫秒級別,太快了,相當于沒執(zhí)行。
解決方案
在臺式機上折騰多次找不到原因,我又回到筆記本上準備再驗證一下,發(fā)現(xiàn)我在筆記本上曾經(jīng)用cuDNN5.1編譯過caffe,回想起最初我是用cuDNN5.1的,而且也運行過MNIST訓(xùn)練,而且CPU和GPU模式運行結(jié)果都是正常的。
于是將臺式機上換成了cuDNN5.1版本。
重新編譯Caffe后,再執(zhí)行MNIST訓(xùn)練,正常!
重新編譯py-faster-rcnn/caffe-fast-rcnn后,demo.py,正常!
換成cuDNN5.1后編譯py-faster-rcnn/caffe-fast-rcnn時,會有編譯錯誤,
解決方法參見我的上一篇博客:
《使用cudnn5編譯py-faster-rcnn錯誤:cudnn.hpp(126): error: argument of type “int” is incompatible …》
由此可以得出結(jié)論:
cuDNN4與GTX1060顯卡之間存在兼容性問題,升級之后的cuDNN5就沒這問題了,所以如果你遇到類似的問題不妨換個cuDNN版本試試。
唉,NVIDIA的產(chǎn)品兼容性實在是成問題啊,如果不是因為我有兩臺電腦而且顯卡型號不同,可以有對比,我實在不知道該怎么從哪方面找原因。
總結(jié)
以上是生活随笔為你收集整理的cuDNN兼容性问题造成的caffe/mnist,py-faster-rcnn/demo运行结果错误的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wider face data 在 fa
- 下一篇: Faster RCNN 训练自己的检测模