[OpenR8 解決方案] IntegerList_Caffe_FC (使用 Caffe 全連接層進行數字規則訓練)

一、IntegerList_Caffe_FC

 

此 IntegerList_Caffe_FC 是在深度學習 Caffe 的框架下,使用全連接層來訓練模型,再透過已訓練好的模型做測試。此次,我們是想讓模型學習數字間的關係,假設輸入六個數字依序為 x1, x2, x3, y1, y2, y3,如果 x1+x2+x3 > y1+y2+y3,則輸出1,反之,則輸出0。亦即,模型要能夠學習一連串六個數字是分成前三個數字、後三個數字,共兩組,且輸出是倚賴於兩組數字和的比較。如下圖1.

首先,我們需準備要做訓練與測試的資料,接著透過 OpenR8 三個 flow 檔案,依序執行即可完成訓練與測試。詳細介紹於以下各章節。

 

圖1.模型訓練與測試.png

圖1.模型訓練與測試。

 

 

二、步驟一:前置處理-準備資料

 

  1. 目的:

準備要讓模型學習與測試模型準確度的資料。

  1. 內容介紹:

準備測試與訓練兩個資料檔案。檔案放置於 /solution/IntegerList_Caffe_FC/data 資料夾,檔名為 extra_test0.txt(訓練)與 extra_test1.txt(測試)。如下圖2

輸入內容:輸入 A, 輸出 B

輸入 A=整數1, 整數2, 整數3, 整數4, 整數5, 整數6

輸出 B = 標籤。

其中標籤定義為

標籤定義.png

如下圖3

  1. 備註:如果要修改輸入幾個數字。請開啟 solution/IntegerList_Caffe_FC/data/ deploy.prototxt 檔案。請在檔案中找到 input_shape {dim: 1  dim: 6 },將 dim: 6。將6修改成想要輸入幾個數字。

 

圖2.準備資料檔名及位置.png

圖2.準備資料檔名及位置。

 

圖3.準備資料內容.png

圖3.準備資料內容

 

 

三、步驟二:前置處理- 1_create_lmdb

 

  1. 目的:

將已準備好檔案轉成後續訓練測試模型所需的 lmdb 檔案。

  1. 使用說明:

請【滑鼠雙擊 R8.exe】=>點選【檔案】=>【開啟】=>【OpenR8>solution下的 IntegerList_Caffe_FC】=>【載入1_create_lmdb.r6】=>【執行】=>【產生 lmdb 檔案】。示意圖如下圖4圖5圖6圖7圖8圖9

對於開啟軟體至載入解決方案有任何疑問可參閱【OpenR8 操作手冊】。

 

圖4.R8.png

圖4.R8.exe。

 

圖5.檔案開啟.png

圖5.檔案開啟。

 

圖6.選擇1_create_lmdb.flow.png

圖6.選擇1_create_lmdb.flow。

 

圖7.載入1_annoset_to_lmdb.png

圖7.載入1_annoset_to_lmdb。

 

圖8.行.png

圖8.執行。

 

圖9.產生lmdb檔案.png

圖9.產生 lmdb 檔案。

 

  1. 流程檔案參數說明

此項為設定輸入檔案的路徑與輸出 lmdb 的路徑。

以下為此 flow 檔案之每個流程順序介紹,由上至下有分別為:

  1. Caffe_ 初始化 : Caffe 框架初始化。
  2. 檔案_刪除資料夾(圖10):當資料夾中存在舊的 lmdb 檔案資料夾,在開始產生新 lmdb 之前,需先將舊的檔案移除。(訓練用)

如下圖,流程區域點選【檔案_刪除資料夾】=>【資料夾名稱(字串)的編輯】=>【值】,值的內容【datatrainval_lmdb】即為 lmdb 的資料夾。

 

圖10.檔案_刪除資料夾.png

圖10.檔案_刪除資料夾。

 

  1. Caffe_ 數字_創建訓練檔案(如下圖11):產生 lmdb 檔案。(訓練用)

 

圖11.Caffe_數字_創建訓練檔案.png

圖11.Caffe_ 數字_創建訓練檔案。

 

  1. 下面最後兩個【檔案_刪除資料夾】與【Caffe_ 數字_創建訓練檔案】:為產生測試模型用的 lmdb,設定方式如上述產生訓練的 lmdb。

 

 

 

 

 

四、步驟三:訓練模型- train

 

  1. 目的:

前置準備資料完成後,開始訓練模型。

  1. 使用說明:

使用OpenR8開啟與載入【2_train】檔案。按下【執行】開始訓練模型,此步驟需花一點時間等待程式建立模型。如下圖12圖13

當此執行完成後會產生訓練好的模型,其模型檔案生成放置,如下圖14

路徑:OpenR8/solution/IntegerList_Caffe_FC /data/

檔案名稱1: snapshot_iter_迭代次數 .Caffemodel

檔案名稱2: snapshot_iter_迭代次數 .Solverstate

 

圖12.開啟2_train.png

圖12.開啟 2_train。

 

圖13.執行2_train與其執行過程圖.png

圖13.執行 2_train 與其執行過程圖。

 

圖14.訓練完產生模型.png

圖14.訓練完產生模型。

 

  1. 2_train 流程介紹:
  1. Caffe_ 初始化 : Caffe 框架初始化。
  2. Caffe_ 訓練:

【CaffeObject】接續前面初始化的設定。

【GPU】用來訓練模型的裝置是否需使用GPU加速,如果是請將值改為 True;反之,請改為 False。(如果選擇是,請確認裝置是否有 GPU)。

【SolverPath】主要參數。此為 Caffe 訓練所需要的輸入檔 solver.prototxt,檔案內容包含訓練迭代的次數、訓練的參數以及樣本的清單等。如下圖15圖16

【continueTrainModelPath】接續之前訓練好的模型繼續訓練。將值填入欲接續訓練的模型路徑,模型副檔名務必為 .solverstate。

 

圖15.2_train流程之caffe_訓練.png

圖15.2_train 流程之 caffe_訓練。

 

圖16.solver.prototxt內容示意圖.png

圖16.solver.prototxt 內容示意圖。

 

 

五、步驟四:測試已訓練好的模型- inference_image

 

  1. 目的:

測試已訓練好的模型。

  1. 使用說明:

使用 OpenR8 開啟【3_inference_image】,載入檔案。如下圖17

單擊【Caffe_ 數字_推論】=>【inputList 編輯】=>【值需填入欲測試的值】=>單擊【執行】=>得到結果。如下圖18圖19

 

圖17.3_inference_image.png

圖17.3_inference。

 

圖18.3_inference_image選擇測試影像.png

圖18.3_inference 輸入測試的資料。

 

圖19.3_inference_image執行結果.png

圖19.3_inference_image 執行結果。

 

  1. 流程內容介紹
  1. Caffe_ 初始化: Caffe 框架初始化。
  2. Caffe_XOR_ 讀取網路

【caffeObject】

【GPU】用來訓練模型的裝置是否需使用 GPU 加速,如果是請將值改為 True;反之,請改為 False。(如果選擇是,請確認裝置是否有 GPU)

【deployPath】讀取網路結構模型。datadeploy.prototxt。

【caffeModelPath】讀入已訓練好的模型(副檔名為 .caffemodel)

  1. Caffe_ 數字_推論

【caffeObject】

【outputResult】輸出結果。即輸入的內容經由模型判斷出來的結果。

【inputResult】輸入想要測試的內容。

【classNumber】將結果分成哪幾類。

  1. 列印:在 dos 視窗顯示 Output =。
  2. 列印單行:在 dos 視窗顯示輸出的結果。

延伸閱讀

1.
OpenR8 - 人人都會用的 AI 軟體 (下載)

[CP 值最好的 AI 人工智慧電腦熱賣中]
硬體採用最新最快的 Titan RTX, RTX-2080Ti-11G, 及 TESLA V100!
視窗圖控介面,易學易用。
硬體優勢:針對深度學習最佳化設計,且經過客戶端 24H 運作驗證。
軟體優勢:事先安裝人工智慧軟體及優化設定,每週提供最新 AI 演算法下載。
公司優勢:專業人工智慧機器人設計公司,資本額一億。
歡迎企業、學校、及公家機關大量採購。
可租用,歡迎來信或來電洽詢。
詳細資料請參閱以下網址: https://tw.openrobot.club/ai_computer