做機器訓練有段時間了,從Windows到Mac再到Unbuntu,一直在搭建tensorflow機器訓練環境。在工作中逐步找到最快捷的搭建方式,這次就以Mac爲例記錄下在Mac中搭建tensorflow機器訓練環境(Ubuntu搭建流程是一樣的)。
首先,由於多年來養成的IDE編程習慣,就想着如果有合適的IDE用於開發tenforflow以及對依賴庫的管理,那應該是件不錯的事情。通過各種實踐發現Pycharm很適合我們的需求,採用工程項目的方式對我們的機器訓練項目進行管理,可能是本人開發Android時比較青睞AndroidStudio,所以對JetBrains的IDE都有一種好感。所有的一切都在Pycharm中完成,那麼我們就切入正題,開始搭建tensorflow平臺吧。
1、下載並安裝Mac版的Pycharm:
Pycharm官網:https://www.jetbrains.com/pycharm/download/#section=mac
下載Mac社區免費版即可。
下載完成後直接安裝,然後打開Pycharm,新建一個Python的工程就可以了。
2、設置Project Interpreter:Python環境
由於Mac自帶Python,我們先直接使用Mac的Python環境,也可以自行安裝Python或升級本機Python,在Project Interpreter設置裏進行Python關聯即可。
新建py_project工程,打開設置頁面:command + ,(快捷鍵)
點擊設置按鈕進行Python環境的關聯。上圖可以看到依賴庫的管理,在這裏我們可以添加和刪除依賴庫,點擊左下角的“+”進行添加,點擊“-”進行刪除。
我們先依次安裝以下依賴庫:
(1)tensorflow 訓練平臺
(2)tensorboard 訓練結果可視化分析
(3)protobuf 訓練模型時需要
(4)pycocotools 評估模型時需要
(5)opencv-python 處理樣本圖片時需要
3、下載record文件製作項目raccoon_dataset:
tensorflow訓練的樣本數據都是record文件,而我們的樣本數據往往都是xml標籤和jpg圖片,那麼我們可以用raccoon_dataset製作我們的訓練record文件。
raccoon_dataset下載地址:https://github.com/datitran/raccoon_dataset
下載完成後將raccoon_dataset-master複製到我們新建的py_project同級目錄下。
4、下載tensorflow-model模型訓練項目:
這個項目是我們訓練我們模型的依託項目,我們所有的機器訓練都在這個項目中完成。
下載地址:https://github.com/tensorflow/models
下載完成後將model-master複製到我們新建的py_project同級目錄下。
5、關聯項目raccoon_dataset和tensorflow-model:
將剛纔下載的兩個項目關聯到我們工程中,這樣我們就可以直接使用這兩個項目。
關聯完成後我們還需要關聯一些必要的目錄:
model-master/research 和 model-master/research/slim
在Pycharm的左邊的project視圖中找到上面兩個目錄並右擊選擇:Markd directory as -> Sources Root
標記完後可以看到這兩個文件夾變成了藍色。
6、安裝Protoc:
protoc是google的文件存儲和通信協議的格式工具。
下載地址:https://github.com/google/protobuf/releases
下載後bin目錄下會有一個protoc二進制文件,覆蓋到對應目錄:
cp bin/protoc /usr/local/bin/protoc
我們打開終端輸入: protoc --version
版本號3.5.1,安裝成功。
7、編輯tensorflow-model項目:
雖然我們關聯上tensorflow-mode項目,但是在訓練中我們需要用的一些api還是要通過編譯這個項目生成的,所以我們現在就寫個編譯的腳本,很簡單的兩行代碼就可以了。
我們在py_project項目下新建一個python文件compile_object_detection.py:
# -*- coding:utf-8 -*-
import os
'''
編譯object_detection API
'''
if __name__ == "__main__":
build = "python ../models-master/research/object_detection/builders/model_builder_test.py"
os.system(build)
直接運行,提示OK即編譯成功:
8、驗證環境:
所有環境安裝完畢,接下來我們就可以進行自己的模型訓練了。