1:
2017年4月19號本來打算 在linux上面裝個Keras+TensorFlow 學習一下 ,但是原來電腦的配置是ubuntu15.10+cuda7.5+cudnnV4+opencv3.1。
在按照 http://keras-cn.readthedocs.io/en/latest/for_beginners/keras_linux/網站教程 安裝過程中出現類似下圖錯誤(提示找不到libcudart.so.8.0))。

問題是tensorflow要求cuda8.0和cudnn5.0。於是升級cuda7.5->8.0 、cudnnv4->v5。升級完了之后,原來的py-faster-rcnn不能運行了,出現上圖錯誤。
2 於是 在py-faster-rcnn中的caffe下面,先使用 命令 make clean 清理,然后再重新編譯 。又出現錯誤(如下圖),主要是py-faster-rcnn與cudnnV5不兼容,於是在makefile.config中關閉cudnn,編譯通過。

3 然后運行 ./tool/demo.py 又出現警告(下圖),其實這個警告不影響使用,就是VGG文件的大小超過了protobuf里面設置的閾值。但是看着難受,於是想回到原始的cuda7.5和cudnnV4,為了不影響py-faster-rcnn的使用。

4 中間以為是opencv3.1的問題,嘗試重新編譯到80%出現下圖錯誤,后來放棄,目前還不會重裝opencv。

5系統中有2個cuda版本。於是修改cuda配置文件 /etc/ld.so.conf.d/cuda.conf 設置為 /usr/local/cuda-7.5/的路徑,但是還是不行。於是又把 /ld.so.conf.d/目錄下面的cuda-8.0文件里面的路徑改了,同時修改了
/usr/local/cuda 這個文件的軟鏈接,這樣才調用了cuda7.5的so文件。 這里記得修改好之后一定使用 sudo ldconfig。也可以使用LD_LIBRARY_PATH來設置,動態鏈接庫的路徑。
6替換cudnnv4時,不知道什么原因,在/usr/local/lib下面還是cudnnv5的文件,通過查看文件大小才發現。V5的大小是79M,V4的是61M。 再次替換一下,最后才有用了。如果只是把libcudnn.* 的文件放到/usr/local/cuda/lib 好像優先選擇的cudnn的路徑是/usr/local/lib ,具體不知道在哪里設置。
7過程中學習了環境變量的設置。
方法一:
在/etc/profile文件中添加變量【對所有用戶生效(永久的)】
用VI在文件/etc/profile文件中增加變量,該變量將會對Linux下所有用戶有效,並且是“永久的”。
要讓剛才的修改馬上生效,需要執行以下代碼
# source /etc/profile
方法二:
在用戶目錄下的.bash_profile文件中增加變量【對單一用戶生效(永久的)】
用VI在用戶目錄下的.bash_profile文件中增加變量,改變量僅會對當前用戶有效,並且是“永久的”。
要讓剛才的修改馬上生效,需要在用戶目錄下執行以下代碼
# source .bash_profile
方法三:
直接運行export命令定義變量【只對當前shell(BASH)有效(臨時的)】
在shell的命令行下直接使用[export變量名=變量值]定義變量,該變量只在當前的shell(BASH)或其子shell(BASH)下是有效的,shell關閉了,變量也就失效了,再打開新shell時就沒有這個變量,需要使用的話還需要重新定義。
例如:export PATH=/usr/local/webserver/php/bin:$PATH
8 如果出現下圖所示的“DSO missing”錯誤。是由於opencv3.0的原因,在makefile文件中修改鏈接庫。
USE_LEVELDB ?= 1 USE_LMDB ?= 1 USE_OPENCV ?= 1 LIBRARIES += glog gflags protobuf leveldb snappy \ lmdb boost_system hdf5_hl hdf5 m ifeq ($(USE_LEVELDB), 1) LIBRARIES += leveldb snappy endif ifeq ($(USE_LMDB), 1) LIBRARIES += lmdb endif ifeq ($(USE_OPENCV), 1) LIBRARIES += opencv_core opencv_highgui opencv_imgproc ifeq ($(OPENCV_VERSION), 3) LIBRARIES += opencv_imgcodecs endif endif
8 安裝IPYTHON后,啟動時出現無法import 模塊

解決辦法:在 /usr/local/lib/python2.7/dist-packages/IPython/utils/terminal.py的 注釋一行,添加一行。

9

修改setup.py中代碼 ,確定cuda的路徑是正確的。
cudaconfig = {'home': home, 'nvcc': nvcc,
'include': pjoin(home,'local', 'cuda-7.5','include'),
'lib64': pjoin(home, 'local','cuda-7.5','lib64')}
9 還有其他的各種坑,待補充,搞了整整1天半。
