一個完整的pytorch預訓練實現圖像分類,模型融合






向AI轉型的程序員都關注了這個號👇👇👇python

機器學習AI算法工程   公衆號:datayxc++


利用pytorch實現圖像分類,其中包含的densenet,resnext,mobilenet,efficientnet, resnet等圖像分類網絡,能夠根據須要再行利用torchvision擴展其餘的分類算法程序員

實現功能web

  • 基礎功能利用pytorch實現圖像分類面試

  • 包含帶有warmup的cosine學習率調整算法

  • warmup的step學習率優調整flask

  • 多模型融合預測,加權與投票融合api

  • 利用flask實現模型雲端api部署瀏覽器

  • 使用tta測試時加強進行預測微信

  • 添加label smooth的pytorch實現(標籤平滑)

  • 添加使用cnn提取特徵,並使用SVM,RF,MLP,KNN等分類器進行分類。

  • 更新添加了模型蒸餾的的訓練方法

  • 添加中間層可視化

  • 更新模型部署(採用flask+Redis的方法)

  • c++ libtorch進行模型部署的簡單demo



代碼運行教程  獲取:

關注微信公衆號 datayx  而後回覆  圖像分類  便可獲取。

AI項目體驗地址 https://loveai.tech


運行環境

  • python3.7

  • pytorch 1.1

  • torchvision 0.3.0

代碼倉庫的使用

數據集形式

原始數據集存儲形式爲,同個類別的圖像存儲在同一個文件夾下,全部類別的圖像存儲在一個主文件夾data下。



利用preprocess.py將數據集格式進行轉換(我的習慣這種數據集的方式)

python ./data/preprocess.py

轉換後的數據集爲,將訓練集的路徑與類別存儲在train.txt文件中,測試機存儲在val.txt中. 其中txt文件中的內容爲



模型介紹

倉庫中模型densenet,mobilenet,resnext 模型來自於torchvision

訓練

  • cfg.py中修改合適的參數,並在train.py中選擇合適的模型


預測

在cfg.py中TRAINED_MODEL參數修改成指定的權重文件存儲位置,在predict文件中能夠選定是否使用tta

python predict.py
  • 當訓練完成多模型以後生成多個txt文件以後,利用ensamble文件夾中的kaggle_vote.py進行投票融合或者加權投票融合。

將每一個模型生成的csv文件,移動到ensamble/samples/而後將每一個文件命名爲method1.py,method2.py. 而後運行以下命令進行投票融合

python ./kaggle_vote.py "./samples/method*.csv" "./samples/vote.csv"


cnn + svm

代碼存在於cnn_ml.py中, 利用訓練好的cnn特徵提取器,將獲得的特徵保存爲pkl文件,而後訓練svm分類器, 並將分類器模型保存,而後讀取預測

主要須要修改的就是根據不一樣模型的輸出特徵向量的大小在cnn_ml.py中修改NB_features對應的大小

flask雲端部署

將訓練存儲好的權重文件,存儲在flask_deployment文件夾中

而後修改server.py中路徑運行便可 利用client.py進行調用





閱讀過本文的人還看了如下文章:


TensorFlow 2.0深度學習案例實戰


基於40萬表格數據集TableBank,用MaskRCNN作表格檢測


《基於深度學習的天然語言處理》中/英PDF


Deep Learning 中文版第一版-周志華團隊


【全套視頻課】最全的目標檢測算法系列講解,通俗易懂!


《美團機器學習實踐》_美團算法團隊.pdf


《深度學習入門:基於Python的理論與實現》高清中文PDF+源碼


特徵提取與圖像處理(第二版).pdf


python就業班學習視頻,從入門到實戰項目


2019最新《PyTorch天然語言處理》英、中文版PDF+源碼


《21個項目玩轉深度學習:基於TensorFlow的實踐詳解》完整版PDF+附書代碼


《深度學習之pytorch》pdf+附書源碼


PyTorch深度學習快速實戰入門《pytorch-handbook》


【下載】豆瓣評分8.1,《機器學習實戰:基於Scikit-Learn和TensorFlow》


《Python數據分析與挖掘實戰》PDF+完整源碼


汽車行業完整知識圖譜項目實戰視頻(全23課)


李沐大神開源《動手學深度學習》,加州伯克利深度學習(2019春)教材


筆記、代碼清晰易懂!李航《統計學習方法》最新資源全套!


《神經網絡與深度學習》最新2018版中英PDF+源碼


將機器學習模型部署爲REST API


FashionAI服裝屬性標籤圖像識別Top1-5方案分享


重要開源!CNN-RNN-CTC 實現手寫漢字識別


yolo3 檢測出圖像中的不規則漢字


一樣是機器學習算法工程師,你的面試爲何過不了?


前海徵信大數據算法:風險機率預測


【Keras】完整實現‘交通標誌’分類、‘票據’分類兩個項目,讓你掌握深度學習圖像分類


VGG16遷移學習,實現醫學圖像識別分類工程項目


特徵工程(一)


特徵工程(二) :文本數據的展開、過濾和分塊


特徵工程(三):特徵縮放,從詞袋到 TF-IDF


特徵工程(四): 類別特徵


特徵工程(五): PCA 降維


特徵工程(六): 非線性特徵提取和模型堆疊


特徵工程(七):圖像特徵提取和深度學習


如何利用全新的決策樹集成級聯結構gcForest作特徵工程並打分?


Machine Learning Yearning 中文翻譯稿


螞蟻金服2018秋招-算法工程師(共四面)經過


全球AI挑戰-場景分類的比賽源碼(多模型融合)


斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)


python+flask搭建CNN在線識別手寫中文網站


中科院Kaggle全球文本匹配競賽華人第1名團隊-深度學習與特徵工程



不斷更新資源

深度學習、機器學習、數據分析、python

 搜索公衆號添加: datayx  



機大數據技術與機器學習工程

 搜索公衆號添加: datanlp

長按圖片,識別二維碼


本文分享自微信公衆號 - 機器學習AI算法工程(datayx)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索