參考https://github.com/sourcedexter/tfClassifier/tree/master/image_classification
https://download.csdn.net/download/yang_china/11467532?spm=1001.2101.3001.5697
主要介紹如何在win10系統中使用TensorFlow環境運行一個最基本的影像分類器,
一、基礎知識
1.物體分類的思想
物體分類,也就是訓練系統識別各個物體,如貓咪、狗狗、汽車等,TensorFlow是谷歌開發出的人工智能學習系統,相當于我們的運行環境,
2.神經網路與Inception v3體系結構模型
神經網路示意圖如下:

通俗了講,就是將若干個輸入,進行若干次操作(線性或者非線性),最后輸出結果,Inception v3模型是谷歌發布的一個深層卷積網路模型,我們使用的retrain_new.py腳本就是使用了Inception v3模型進行一個遷移學習,
3.訓練集、測驗集和驗證集
訓練集用來訓練模型,驗證集用來驗證模型是否進行了過擬合,測驗集用來測驗模型的準確程度,三種圖片集的比例會對準確度產生影響,
4.學習速率
不同的學習速率會導致不同的結果,如果速率過大,會導致準確率在訓練的程序中不斷上下跳動,如果速率過小會導致在訓練結束前無法到達預期準確度,
二、環境搭建
1.具體環境搭建可以查看之前的文章,
主要逐注意版本對應,
2.TensorFlow環境搭建(gpu)
(1)直接pip安裝,命令:
pip install tensorflow-gpu
這樣就安裝好TensorFlow了,但是我們還需要GPU加速,所以還需要安裝cuda和cuDnn(專門為deep learning準備的加速庫),
(2)cuda安裝
下載完后正常安裝就可以了,
(3)cuDnn庫下載
下載完后解壓縮,將三個檔案拷貝到相應的檔案中即可,一定注意對應覆寫,
(4)測驗
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
查看是否輸出,
三.基本使用
1.資料集的收集與創建
我用的是2018全球AI挑戰賽的資料集,鏈接:https://challenger.ai/datasets/lad2018
2.訓練模型
訓練模型使用retrain_new.py腳本,在命令列運行,命令格式如下:
python retrain_new.py --model_dir 存放classify_image_graph_def.pb的路徑 --image_dir 剛才的創建的DataSet的路徑 --output_graph 產生的,pb檔案的存放路徑 --output_labels 產生的output_labels.txt的 存放路徑 --how_many_training_steps 訓練步數 -- learning_rate 學習速率 --testing_percentage 測驗集比例 --validation_percentage 驗證集比例
示例命令:
python retrain_new.py --model_dir E:\tfclassifier\image_classification\inception --image_dir E:\tfclassifier\DataSet --output_graph E:\tfclassifier\image_classification\output_dir\output_graph.pb --output_labels E:\tfclassifier\image_classification\output_dir\output_labels.txt --how_many_training_steps 500 --learning_rate 0.3 --testing_percentage 10 --validation_percentage 10
說明:
- model_dir引數:指定了model的存放位置,就是我們的inception檔案夾
- image_dir引數:指定了資料集的位置
- output_graph引數:產生的output_graph.pb檔案的存放路徑(后面要用)
- output_labels 引數:產生的output_labels.txt的存放路徑(后面要用)
- how_many_training_steps引數:訓練步數,和學習速率配合調整(我用的500)
- learning_rate引數:學習速率,和訓練步數配合調整(我用的0.3,常用的有0.001,0.01,0.1,0.3,1,3,可自己調整嘗試一下)
- testing_percentage引數:測驗集比例
- validation_percentage引數:驗證集比例
3.測驗模型
核心的檔案是output_graph.pb檔案(我們訓練所產生的圖,是一個二進制檔案)和output_labels.txt檔案,
使用retrain_model_classifier.py腳本來測驗模型,命令格式如下:
cd E:\tfclassifier\image_classification(進入retrain_model_classifier.py腳本所在的目錄)python retrain_model_classifier.py 要識別圖片的路徑
然后會看到一些版本資訊,和輸出結果:

四.遇到的問題以及解答
1.版本對應問題
python版本,cuda版本和cuDNN版本都是對應的,如果結果中出現了亂碼,很大概率是版本的問題,
2.帶引數的python腳本撰寫與運行
想讓python腳本帶引數,可以在python腳本的末尾添加如下格式的代碼:

運行時需要在python xxx.py后加上“--image_dir 引數”就可以了,
3.測驗腳本的調整
要不斷訓練、測驗,不斷調整引數,直到訓練快要結束的時候,驗證比例達到穩定,并且在90以上,我們才認為系統較為完善,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/296159.html
標籤:其他
上一篇:【16位RAW影像處理三】直方圖均衡化及區域直方圖均衡用于16位影像的細節增強。
下一篇:OpenCV 之 特征檢測
