教程 | 貓狗識別 - AI圖片分類的樣例
貓狗識別 - AI圖片分類的樣例
更多專案請檢視 https://www.flyai.com
專案官方網址
該資料有貓和狗兩類圖片,一共有25000張圖片,貓狗各佔一半,可以用來做圖片分類的入門資料。
樣例程式碼說明
app.yaml
是專案的配置檔案,專案目錄下必須存在這個檔案,是專案執行的依賴。
processor.py
樣例程式碼中已做簡單實現,可供查考。
處理資料的輸入輸出檔案,把通過csv檔案返回的資料,處理成能讓程式識別、訓練的矩陣。
可以自己定義輸入輸出的方法名,在
app.yaml
中宣告即可。def input_x(self, image_path): ''' 引數為csv中作為輸入x的一條資料,會被Dataset類中的next_batch()方法多次呼叫。 :params: 輸入的資料列表 :return: 返回矩陣 ''' pass def input_y(self, label): ''' 引數為csv中作為輸入y的一條資料,會被Dataset類中的next_batch()方法多次呼叫。 :params: 資料標籤列表 :return: 返回矩陣 '''
pass def output_y(self, data): ''' 驗證時使用,把模型輸出的y轉為對應的結果 :param data: 預測返回的資料 :return: 返回預測的標籤 ''' pass
main.py
樣例程式碼中已做簡單實現,可供查考。
程式入口,編寫演算法,訓練模型的檔案。在該檔案中實現自己的演算法。
通過
dataset.py
中的next_batch
方法獲取訓練和測試資料。# 資料獲取輔助類 dataset =
Dataset() x_train, y_train, x_test, y_test = dataset.next_batch(BATCH)通過
model.py
中的save_model
方法儲存模型# 模型操作輔助類 model = Model(dataset) model.save_model(YOU_NET)
如果使用
PyTorch
框架,需要在net.py
檔案中實現網路。其它用法同上。
model.py
樣例程式碼中已做簡單實現,可供查考。
訓練好模型之後可以繼承
flyai.model.base
包中的base
重寫下面三個方法實現模型的儲存、驗證和使用。def predict(self, path, name, **data): ''' 使用模型 :param path: 模型所在的路徑 :param name: 模型的名字 :param data: 模型的輸入的一個或多個引數 :return: ''' pass def evaluate(self, path, name): ''' 驗證模型 :param path: 模型的路徑 :param name: 模型的名字 :return: 返回驗證的準確率 ''' pass def save_model(self, network, path=MODEL_PATH, name=MODEL_NAME, overwrite=False): ''' 儲存模型 :param network: 訓練模型的網路 :param path: 要儲存模型的路徑 :param name: 要儲存模型的名字 :param overwrite: 是否覆蓋當前模型 :return: ''' self.check(path, overwrite)
predict.py
樣例程式碼中已做簡單實現,可供查考。
對訓練完成的模型使用和預測。
path.py
可以設定資料檔案、模型檔案的存放路徑。
dataset.py
該檔案在FlyAI開源庫的
flyai.dataset
包中,通過next_batch(BATCH)
方法獲得x_train
y_train
x_test
y_test
資料。FlyAI開源庫可以通過
pip3 install -i https://pypi.flyai.com/simple flyai
安裝。
FlyaI終端命令
1. 下載專案並解壓
2. 使用終端進入到專案的根目錄下
cd /path/to/project
3. 初始化環境並登入
給flyai授權,在終端下執行
chmod +x ./flyai
在終端下執行 ./flyai init ,下載完成之後,使用微信掃碼登入。
登入成功之後,會自動下載執行所需環境。
4. 本地開發除錯
在終端下執行 ./flyai test ,會安裝專案所需依賴,並執行 main.py。
如果使用本地IDE開發,可以自行安裝 requirements.txt 中的依賴,執行main.py即可。
5.提交訓練到GPU
專案中如果有新的引用,需要加入到 requirements.txt 檔案中。
在終端下執行 ./flyai train 返回sucess狀態,代表提交離線訓練成功。
訓練結束會以微信和郵件的形式傳送通知,訓練結果可在通知中檢視。
FlyAI全球人工智慧專業開發平臺,一站式服務平臺
掃描下方二維碼,及時獲取FlyAI最新訊息,搶先體驗最新功能。