Anaconda+Tensorflow+RetinaNet模型(檢驗環境是否ok):
在使用本文講述的環境搭建之前,首先你需要安裝Anaconda……如,我的Anaconda3-5.2.0安裝在了E:\Python\Anaconda3中,接下來如何建立整潔的conda環境以及tensorflow環境配置。
1. 打開Anaconda Prompt,查看當前所有的conda環境:conda info -e
一開始只有root
2. 創建conda環境的方法:conda create -n tensorflow pip python=3.6.2
這樣就會得到如上圖所示的“tensorflow”環境了,命名“tensorflow”(根據自己需求來)
3. 激活進入環境:activate tensorflow
4. 查看環境內的packages列表(不同環境下相互之間不影響,package根據需求可在相應環境下獨立安裝):conda list
紅框表示這些包在“tensoflow”環境下。
5. 在使用pip命令安裝的時候,經常因爲源的緣故,下載速度極其慢導致失敗。採用好的源能夠快很多:
國內源:
清華:https://pypi.tuna.tsinghua.edu.cn/simple
阿里雲:http://mirrors.aliyun.com/pypi/simple/
中國科技大學 https://pypi.mirrors.ustc.edu.cn/simple/
使用方法:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple [包名]
使用“[包名]==[版本號]”可以指定安裝特定版本;
6. 接下來是安裝tensorflow和採用RetinaNet模型進行環境檢測的過程(中間遇到很多問題並一一解決):
(1)首次安裝時,我採用的是:conda install tensorflow-gpu==1.10.0
結果不僅安裝了tensorflow,還奇蹟般地安裝了cuda和cudnn,並且與tensorflow、gpu兼容;
(原本還想安裝網上的教程一個個安裝的,現在感覺可以省很多事),import tensorflow成功。
(2)接着拿retinaNet模型來試一下環境,從網上下載模型(github:https://github.com/fizyr/keras-retinanet)
打開/keras-retinanet-master,裏面的setup.py文件用於安裝這個模型的依賴包,按照README.md文件指引是推薦 我們使用:pip install . ,安裝所有的依賴包,但是這樣有機率出現解析很慢/卡死/需要等很久的情況,這裏我踩了 坑,很多次都沒搞定,因此後來不採用這個方法;
打開setup.py文件,可以看到該模型需要的依賴包和要求:
根據需求,我們依次在我們建立的“tensorflow”環境下使用:pip install [包名] 命令進行安裝即可。(安裝過程中有 可能會提示你Keras版本過高等問題,按照提示安裝提示推薦的適用版本即可。
(3)最後想運行識別代碼peoplecar.py看一下,
結果報錯:ValueError: numpy.dtype has the wrong size, try recompiling
這是numpy版本太低的原因,
pip uninstall numpy
pip install numpy #這樣會安裝最新的numpy
安裝過程中提示,tensorflow要求的numpy版本有範圍限制,不能大於1.14.5或者小於……,這就尷尬了版本太高又 不行,通過試安裝1.14.5,報同樣的錯;
因此只能含淚卸載tensorflow,接着安裝tensorflow==1.14.0,接着把numpy也升到最新。痛苦的事情又發生了,這 次import tensorflow就報錯了,提示需要10.0的cuda,但是我的gpu只能兼容9的……
再一次卸載tensorflow,安裝tensorflow==1.12.0,mport tensorflow #成功。
接着運行模型代碼,報錯:
FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'._np_quint8 = np.dtype([("quint8", np.uint8, 1)])
numpy版本太高,降低到1.16.5,最後代碼跑通(完美~)。
最後,大功告成,併成功將包都裝在了自己需要的地方,不會向以前那樣,環境越來越亂。。。
附上我適用的人車識別源代碼,github:https://github.com/RoyPeng-yz/Human_Vehicle-Identification-System