入門介紹,CNN分辨貓狗,Pytorch入門
注意:請搭配每日課程觀看以達到最好效果
Faster.ai
熟悉Colab,看完今日教學Slides,用VGG辨識貓狗,使用Pytorch
大家一定有個疑問,為什麼我不能用之前的Jupyter Notebook呢?
之前我們是在自己本機跑的,算力當然沒有Google GPU/TPU好,不用的話會跑很久的時間,以我的MacBook Pro來說,你首先會聽到飛機起飛的聲音...
1.ML已經研究50年了
2.電腦運算能力跟儲存空間都夠大到我們需要的了
3.網路上資料也夠多了
4.需要的工具跟文化也夠成熟了
5.也有很多公司投入資源心力
CV有物體檢測,圖像分割,圖像標註,風格遷移,圖像對抗生成,應用於遊戲強化學習
NLP有機器翻譯,問答機器人,語音轉文字
我們會在 Day29 說明
然後他還提到四軸飛行器的影像控制
他推薦三個套件:
1.Anaconda:很好,我們在用了
2.Pytorch:這份教學會遇到
3.Colab:要用GPU的話,這個昨天介紹過
這是個Kaggle分辨貓狗的比賽25,000筆標註好資料在訓練集,12,500筆未標注資料在測試集,這個跟鐵達尼有點像,都是二分類問題
1.import需要套件
2.確認pytorch,system,gpu都正確設置
3.從Fast.ai下載貓狗Kaggle資料集並解壓
1.對圖像大小正規化
2.查看資料
1.下載10001個ImageNet動物類別
2.試用VGG
介紹CNN架構,之後會在Day28提到
1.定義損失函數與優化器
2.訓練模型
1.生成一個自己的Data loader
1.用驗證集看是否過擬合了
2.觀察標籤正確性
基本上用ImageNet訓練好的VGG可以很準確預測貓狗,這個例子也顯示深度學習所有必經過程
1.下載數據集
2.設置環境以使用GPU
3.準備資料
4.使用預訓練的VGG計算功能
5.保存結果到自己的Google Drive
簡述Pytorch
1.Pytorch基本操作
2.Pytorch跟numpy交互
1.使用Cifar10識別物體資料集
2.只保留紅色通道
1.Torch預設requires_grad是關閉的,微分前要先打開
2.透過broadcasting處理不同形狀的張量運算,並節省記憶體
3.backward()反向微分
1.Numpy做線性迴歸
2.用張量做線性迴歸
3.Autograd做線性迴歸
4.神經網路做線性迴歸
到這邊把兩份ipynb下載下來
下載ipynb
儲存,並放到Google Drive
以colab開啟
可以看到這是一個kaggle比賽
Kaggle比賽資訊
訓練完結果一樣會存到Google Drive
這邊要想一下有沒有更快的方式?
https://mlelarge.github.io/dataflowr-web/cea_edf_inria.html
https://mlelarge.github.io/dataflowr-slides/Slides/01_intro_dldiy/index.html#1