好記性不如爛筆頭,純粹為自己的學習生活記錄點什么!
本次記錄win10下安裝python3+curl+pip+jupyter,以及修改右鍵快捷打開cmd
對于大多數的學習者,還是習慣選擇在ubuntu系統上學習深度學習,主要還是因為絕大多數算法實現都是ubuntu上實現的,而且環境配置簡單方便,絕大部分依賴庫都可以通過pip一行代碼解決。
今天介紹的是win10系統下的pip安裝,并且安裝配置Jupyter notebook。我的代碼都是ubuntu上運行,但是一運行起來就會很卡,因為顯卡顯存幾乎全部被TensorFlow占用完了,因此我就想在筆記本上配置一個完整環境,方便修改代碼。我的筆記本是ThinkPad T440P,內存12G,顯卡GTX 730M。
安裝順序:
python3 -> curl -> pip -> Jupyter notebook
移駕到python官網
https://www.python.org/downloads/windows/
現在系統一般都是64位,認準X86-64,按照windows用戶使用習慣,下載圖中箭頭所指exe文件,下載完畢直接安裝即可。
上圖中,一定要注意,勾選Add Python 3.5 to PATH,確保python添加到系統環境變量,然后install now即可,或者你選擇Customize Installation,將Python安裝到預設文件夾。安裝成功,會提示“Setup was successful message”。
按著鍵盤左下角win圖標+R,輸入cmd,打開命令行窗口,輸入
python -V
正常輸出python版本,沒有錯誤說明安裝成功!
Python 3.5.1
pip官方介紹安裝方法中用到curl下載pip文件,因此在此之前我們先安裝curl,官網地址:
https://curl.haxx.se/windows/
選擇64位下載
這是64位下載地址:
https://curl.haxx.se/windows/dl-7.61.1_6/curl-7.61.1_6-win64-mingw.zip
下載完成后解壓縮,找到bin文件下的curl.exe文件,將其拷貝到C:\Windows\System32文件夾下,如圖所示:
然后 驗證curl是否配置成功, Win鍵+R -> cmd打開命令行窗口,輸入
curl -V
輸出如下結果,則可進行下一步:
curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL Release-Date: [unreleased] Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp Features: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL
PIP是python的一個包管理系統,所以為了能夠方便后續依賴庫的安裝,安裝pip是很好的選擇,也是懶人之福。借助于curl我們可以很容易完成pip的安裝。
首先,下載get-pip.py文件,cmd命令行下執行如下命令:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
然后運行
python get-pip.py
.默認安裝完畢即可。然后配置環境變量,我的電腦右鍵屬性--高級系統設置
然后如下圖選擇環境變量:
依下圖在環境變量中找到path一行,雙擊打開:
選擇新建,復制這行粘貼()
# xxx是你個人安裝python的安裝目錄 C:\xxx\Python\Scripts\
最后確認即可!
我們在cmd命令行下輸入
pip list
查看是否配置成功,當然第一次輸入可能會沒有任何列表,隨后等你安裝了各種依賴庫以后,就會出現類似下面結果
有了前面的基礎,安裝jupyter notebook非常簡單了!
首先對pip升級
pip3 install --upgrade pip
然后,安裝jupyter notebook
pip3 install jupyter
安裝成功就大功告成了!!
只需要在cmd中輸入
jupyter notebook
就會自動打開瀏覽器,并且列出文件目錄,但是這里有個非常麻煩的問題,如下圖
每次在win鍵+R 輸入cmd打開命令行窗口后,打開的都是默認的目錄,如果我們的jupyter notebook在另外一個文件夾,打開就會很麻煩,所以我們需要將打開cmd命令行加入到鼠標右鍵中!
桌面新建一個txt文件(比如是my.txt),打開,復制以下內容到txt文件中:
注意:我對下面做了修改,將第一個'在此處打開命令行'替換成了'小宇宙爆發吧',你也可以改成其他文字,這樣你在文件夾空白處右鍵時都會顯示修改的文字,后面有效果圖!
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\cmd_here] @="小宇宙爆發吧" "Icon"="cmd.exe" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\cmd_here\command] @="\"C:\\Windows\\System32\\cmd.exe\"" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\cmdPrompt] @="在此處打開命令行" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\cmdPrompt\command] @="\"C:\\Windows\\System32\\cmd.exe\" \"cd %1\"" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\cmd_here] @="在此處打開命令行" "Icon"="cmd.exe" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\cmd_here\command] @="\"C:\\Windows\\System32\\cmd.exe\""
保存修改,并且將此文件名后綴改為‘my.reg’,確認修改。最后,運行這個reg文件,點擊確認即可!
比如在桌面空白處右鍵,則呈現如下效果圖:
至此,結束! 可以自由的在任意文件夾中打開jupyter notebook了!
慢慢積累,慢慢記錄,一切都會好的,加油!
看過很多博主通過 Object Detection 實現了一些皮卡丘捕捉,二維碼檢測等諸多特定項的目標檢測。而我跟著他們的案例來運行的時候,不是 Tensorflow 版本沖突,就是缺少什么包,還有是運行官方 object_detection_tutorial 不展示圖片等等問題。
在看過一個國外博主例子,我也通過 Tensorflow-GPU1.10.0 運行了官方例子,既然要使用 GPU 則需要把 CUDA 先配置好,上一篇文章有特別詳細介紹到。而這里就捋一下在運行過程遇到的種種問題。
1. windows10 的 64 位電腦
2. 顯卡 GeForce GTX 750 Ti
3. Python 3.6.13
4. Tensorflow-GPU 1.10.0
5. Cuda 9.0.176
6. Cudnn7.0.5
1. 安裝 Python 3.6.13 環境
由于之前我有其他項目用了高版本的 Py,這里我就用了 Anconda3 的 conda 創建一個虛擬環境,這里的 conda 的 bin 目錄需要加到環境變量中。
1.1. 查看環境列表
輸入 conda env list,就可以列出以往所有的環境名了,也是為了避免后面太多相似
1.2. 創建新環境并進入
conda create -n object_dection python=3.6 && conda activate object_dection
1.3. 安裝 Tensorflow-gpu
因為以上通過 conda 創建了新環境也安裝了 pip,所以只需要輸入 pip install tensorflow-gpu==1.10.0,在下載過程中可能會中斷,要多試幾次。
1.4. 安裝其他依賴
conda install -c anaconda protobuf
pip install pillow
pip install lxml
pip install Cython
pip install jupyter (時間較長,可能會中斷)
pip install matplotlib
pip install pandas
pip install opencv-python (安裝是可能會被殺毒軟件誤報)
1. 下載與 TF 1.10.0 對應的模型庫
以下是對應關系,我這里就選擇 ”tensorflow/models/tree/b07b494e3514553633b132178b4c448f994d59df“,下載完畢后放入一個盤符下即可。
TensorFlow版本 GitHub 模型存儲庫提交
TF v1.7 https://github.com/tensorflow/models/tree/adfd5a3aca41638aa9fb297c5095f33d64446d8f
TF v1.8 https://github.com/tensorflow/models/tree/abd504235f3c2eed891571d62f0a424e54a2dabc
TF v1.9 https://github.com/tensorflow/models/tree/d530ac540b0103caa194b4824af353f1b073553b
TF v1.10 https://github.com/tensorflow/models/tree/b07b494e3514553633b132178b4c448f994d59df
TF v1.11 https://github.com/tensorflow/models/tree/23b5b4227dfa1b23d7c21f0dfaf0951b16671f43
TF v1.12 https://github.com/tensorflow/models/tree/r1.12.0
TF v1.13 https://github.com/tensorflow/models/tree/r1.13.0
最新版本 https://github.com/tensorflow/models
2. 下載 TF 的目標檢測模型
下載地址在模型庫的 research/object_detection/g3doc/tf1_detection_zoo.md 里,模型選擇就很有講究了,若要在計算能力較差的設備上 (智能手機、樹莓派、FPGA 等嵌入式系統中),使用 SSD-MobileNet 系列,若在工作站上訓練檢測可使用 RCNN 系列。這里選擇的是 ”Faster-RCNN-Inception-V2“,下載完畢后放入上面模型庫里的 object-detection-model\research\object_detection 下面。
3. 下載國外博主提供的 demo
地址:TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10,下載后解壓放入 object-detection-model\research\object_detection。
1. 配置模型的環境變量
需要將 \models, \models\research, and \models\research\slim 三個路徑加入到 path 的環境變量中。
2. 編譯 Protobuf 文件
命令的目錄切換到 "object-detection-model\research” 下,通過前面 conda 安裝的 protobuf 將.proto 編譯成 name_pb2.py 文件,輸入以下命令。
protoc --python_out=. .\object_detection\protos\anchor_generator.proto .\object_detection\protos\argmax_matcher.proto .\object_detection\protos\bipartite_matcher.proto .\object_detection\protos\box_coder.proto .\object_detection\protos\box_predictor.proto .\object_detection\protos\eval.proto .\object_detection\protos\faster_rcnn.proto .\object_detection\protos\faster_rcnn_box_coder.proto .\object_detection\protos\grid_anchor_generator.proto .\object_detection\protos\hyperparams.proto .\object_detection\protos\image_resizer.proto .\object_detection\protos\input_reader.proto .\object_detection\protos\losses.proto .\object_detection\protos\matcher.proto .\object_detection\protos\mean_stddev_box_coder.proto .\object_detection\protos\model.proto .\object_detection\protos\optimizer.proto .\object_detection\protos\pipeline.proto .\object_detection\protos\post_processing.proto .\object_detection\protos\preprocessor.proto .\object_detection\protos\region_similarity_calculator.proto .\object_detection\protos\square_box_coder.proto .\object_detection\protos\ssd.proto .\object_detection\protos\ssd_anchor_generator.proto .\object_detection\protos\string_int_label_map.proto .\object_detection\protos\train.proto .\object_detection\protos\keypoint_box_coder.proto .\object_detection\protos\multiscale_anchor_generator.proto .\object_detection\protos\graph_rewriter.proto
3. 安裝 Object-Detection
繼續在 “object-detection-model\research” 目錄下,分別運行下面兩個命令,并且會多出幾個文件夾。
python setup.py build
python setup.py install
為了驗證 Object Detection 是否安裝成功,也為了運行目標檢測官方案例。通過前面安裝的 jupyter,執行以下命令,前提是命令目錄需要切換到 “object-detection-model\research\object_detection”。
jupyter notebook object_detection_tutorial.ipynb
運行后默認會打開瀏覽器,然后打開腳本,并能一次一步地瀏覽代碼部分。可以通過單擊上面工具欄中的 “運行” 按鈕逐步瀏覽每個部分。當小節旁邊的 “In [*] 文本中的數字出現時,該節將完成運行 (例如 “In [1]”)。(注意:其中有一步是從 GitHub 上下載 ssd_mobilenet_v1 模型,大約 74M,需要多等一會,程序是在執行的,并不是死機或出錯。靜等 In [*] 中的 * 變成數字)。但是當我在點擊每段代碼時,就有以下幾個報錯。
1. Could not find 'cudart64_90.dll'. TensorFlow requires that this DLL be installed in a directory that
原因:本地電腦沒有 CUDA 的 cudart64_90.dll 文件,當安裝 CUDA 后還報錯,原來是啟動窗口沒有關閉,命令找的是舊環境地址
方法:重啟打開該 conda 環境,再重新啟動 jupyter 命令。
2. Please upgrade your tensorflow installation to v1.4.* or later
原因:反復確認過在該環境下安裝的是 TF1.10.0,目前不知道什么原因,以下方法雖然解決了,但是第一段代碼運行還有有一些異常信息。
方法:打開 object_detection_tutorial.ipynb 文件,找到 "source", 刪除或注釋掉以下代碼。
3. 目標檢測的圖片不出來。
原因:目前不知道原因,沒有錯誤提示,我也更換過瀏覽器。
方法:代碼運行選擇了 run all,在火狐瀏覽器里就出來了。