1. slam3d 项目探索
之前两篇对segnet-caffe进行了初步的测试和代码键入运行;
回过来对slam3d项目重新build运行发现了运行终止的问题:
layer {
name: "conv1_1_D"
type: "Convolution"
bottom: "conv1_2_D"
top: "conv1_1_D"
param {
lr_mult: 1
decay_mult: 1
}
param {
lr_mult: 2
decay_mult: 0
}
convolution_param {
num_output: 12
pad: 1
kernel_size: 3
weight_filler {
type: "gaussian"
std: 0.01
}
bias_filler {
type: "constant"
value: 0
}
}
}
layer {
name: "argmax"
type: "ArgMax"
bottom: "conv1_1_D"
top: "argmax"
argmax_param {
axis: 1
}
}
I0227 15:17:36.980752 3832 layer_factory.hpp:77] Creating layer input
I0227 15:17:36.999081 3832 net.cpp:100] Creating Layer input
I0227 15:17:36.999109 3832 net.cpp:408] input -> data
I0227 15:17:37.058548 3832 net.cpp:150] Setting up input
I0227 15:17:37.058636 3832 net.cpp:157] Top shape: 1 3 360 480 (518400)
I0227 15:17:37.058643 3832 net.cpp:165] Memory required for data: 2073600
I0227 15:17:37.058655 3832 layer_factory.hpp:77] Creating layer conv1_1
I0227 15:17:37.058679 3832 net.cpp:100] Creating Layer conv1_1
I0227 15:17:37.058686 3832 net.cpp:434] conv1_1 <- data
I0227 15:17:37.058696 3832 net.cpp:408] conv1_1 -> conv1_1
F0227 15:17:40.722188 3832 cudnn.hpp:113] Check failed: status == CUDNN_STATUS_SUCCESS (3 vs. 0) CUDNN_STATUS_BAD_PARAM
*** Check failure stack trace: ***
Aborted (core dumped)
网上的说法,有的以为是GPU被别的进程占据了,所以键入命令
watch -n 1 nvidia-smi
然后查看GPU使用:
重启,或者使用sudo kill 2137 PID
其实都无用,反而会使系统运行不正常;所以这里不是GPU被别的进程占用的原因。
网上另有人说是cuda和cudnn版本不匹配的原因,然后仔细查看上面的warning信息,认为应该就是这儿的原因,之前在装tensorflow的时候将系统原来的cudnn版本破坏过,原先电脑上的是cudn8.0+cudnn5.1;后来因为网上的方法将cudnn5.1改为了cudnn6.0;
【https://stackoverflow.com/questions/41991101/importerror-libcudnn-when-running-a-tensorflow-program】
$ tar xvzf cudnn-8.0-linux-x64-v5.1-ga.tgz
$ sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include
$ sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
https://stackoverflow.com/questions/41991101/importerror-libcudnn-when-running-a-tensorflow-program
所以需要将/usr/local/cuda/include
中的cudnn6.0版本换成cudnn5.1版本;
sudo cp -P cudnn6-5.1/cudav5.1/include/cudnn.h /usr/local/cuda/include
sudo cp -P cudnn6-5.1/cudav5.1/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
sudo ldconfig
再重新将slam3d项目cmake.. make 发现warning信息没有了,也能够重新正常运行。