PyTorch中基於TPU的FastAI多類影象分類
作者|PRUDHVI VARMA
編譯|VK
來源|Analytics Indiamag
計算機視覺因其廣泛的應用而成為人工智慧領域中最具發展趨勢的子領域之一。在某些領域,甚至它們在快速準確地識別影象方面超越了人類的智慧。
在本文中,我們將演示最流行的計算機視覺應用之一-多類影象分類問題,使用fastAI庫和TPU作為硬體加速器。TPU,即張量處理單元,可以加速深度學習模型的訓練過程。
本文涉及的主題:
-
多類影象分類
-
常用的影象分類模型
-
使用TPU並在PyTorch中實現
多類影象分類
我們使用影象分類來識別影象中的物件,並且可以用於檢測品牌logo、對物件進行分類等。但是這些解決方案有一個侷限性,即只能識別物件,但無法找到物件的位置。但是與目標定位相比,影象分類模型更容易實現。
影象分類的常用模型
我們可以使用VGG-16/19,Resnet,Inception v1,v2,v3,Wideresnt,Resnext,DenseNet等,它們是卷積神經網路的高階變體。這些是流行的影象分類網路,並被用作許多最先進的目標檢測和分割演算法的主幹。
基於FasAI庫和TPU硬體的影象分類
我們將在以下方面開展這項工作步驟:
1.選擇硬體加速器
這裡我們使用Google Colab來實現。要在Google Colab中使用TPU,我們需要開啟edit選項,然後開啟notebook設定,並將硬體加速器更改為TPU。
通過執行下面的程式碼片段,你可以檢查你的Notebook是否正在使用TPU。
import os
assert os.environ['COLAB_TPU_ADDR']
Path = 'grpc://'+os.environ['COLAB_TPU_ADDR']
print('TPU Address:', Path)
2.載入FastAI庫
在下面的程式碼片段中,我們將匯入fastAI庫。
from fastai.vision import *
from fastai.metrics import error_rate, accuracy
3.定製資料集
在下面的程式碼片段中,你還可以嘗試使用自定義資料集。
PATH = '/content/images/dataset' np.random.seed(24) tfms = get_transforms(do_flip=True) data = ImageDataBunch.from_folder(PATH, valid_pct=0.2, ds_tfms=tfms, size=299, bs=16).normalize(imagenet_stats) data.show_batch(rows=4, figsize=(8, 8))
4.載入預訓練的深度學習模型
在下面的程式碼片段中,我們將匯入VGG-19 batch_normalisation模型。我們將把它作為fastAI的計算機視覺學習模組的一個例項。
learn = cnn_learner(data, models.vgg19_bn, metrics=accuracy)
5.訓練模型
在下面的程式碼片段中,我們嘗試使用一個epoch。
learn.fit_one_cycle(1)
在輸出中,我們可以看到我們得到了0.99的準確度,它花了1分2秒。
在下面的程式碼片段中,我們使用混淆矩陣顯示結果。
con_matrix = ClassificationInterpretation.from_learner(learn)
con_matrix.plot_confusion_matrix()
6.利用模型進行預測
在下面的程式碼片段中,我們可以通過在test_your_image中給出影象的路徑來測試我們自己的影象。
test_your_image='/content/images (3).jpg'
test = open_image(test_your_image)
test.show()
在下面的程式碼片段中,我們可以得到輸出張量及其所屬的類。
learn.predict(test)
正如我們在上面的輸出中看到的,模型已經預測了輸入影象的類標籤,它屬於“flower”類別。
結論
在上面的演示中,我們使用帶TPU的fastAI庫和預訓練VGG-19模型實現了一個多類的影象分類。在這項任務中,我們在對驗證資料集進行分類時獲得了0.99的準確率。
原文連結:https://analyticsindiamag.com/fastai-with-tpu-in-pytorch-for-multiclass-image-classification/
歡迎關注磐創AI部落格站:
http://panchuang.net/
sklearn機器學習中文官方文件:
http://sklearn123.com/
歡迎關注磐創部落格資源彙總站:
http://docs.panchuang.net/