TensorFlow Hub簡(jiǎn)介
TensorFlow Hub是一個(gè)用于促進(jìn)機(jī)器學(xué)習(xí)模型中可復(fù)用部分再次進(jìn)行探索與發(fā)布的庫(kù)囊卜,主要將預(yù)訓(xùn)練過(guò)的TensorFlow模型片段再次利用到新的任務(wù)上车要。(可以理解為做遷移學(xué)習(xí))
要使用TensorFlow Hub需要你本地安裝的TensorFlow的版本在1.7以上(TensorFlow的安裝配置過(guò)程本文不做介紹责语,若有需要葵孤,可以參考此文)
通過(guò)以下命令即可安裝TensorFlow Hub
pip install tensorflow-hub
下載好的TensorFlow Hub版本信息如下圖所示
TensorFlow Hub使用
方便起見,我們使用TensorFlow Hub官方提供的花卉圖片集來(lái)作為我們的數(shù)據(jù)集吝岭,網(wǎng)絡(luò)條件允許的讀者宛裕,可以使用如下命令下載圖片集
cd ~
curl -LO http://download.tensorflow.org/example_images/flower_photos.tgz
tar xzf flower_photos.tgz
下載不下來(lái)也沒(méi)事肤无,本人貼心的準(zhǔn)備了百度云鏈接
鏈接: https://pan.baidu.com/s/1NVl8uUU7iVktxE0g7Oa5jw 密碼: ivt8
下載下來(lái)之后解壓即可槽惫。
解壓之后我們可以看到周叮,flower_photos文件夾下包含了如下幾個(gè)子文件夾辩撑,每一個(gè)子文件夾的名字都代表了其中圖片的標(biāo)簽,如dandelion(蒲公英)文件夾下的所有圖片皆為蒲公英的圖片则吟。
有了圖片集了槐臀,我們還需要用于遷移學(xué)習(xí)的訓(xùn)練代碼。
同樣氓仲,也可以通過(guò)如下命令下載用于遷移學(xué)習(xí)的訓(xùn)練代碼
mkdir ~/example_code
cd ~/example_code
curl -LO https://github.com/tensorflow/hub/raw/master/examples/image_retraining/retrain.py
讀者也可自行前往TensorFlow Hub的官方GitHub倉(cāng)庫(kù)下載。
我們需要使用的是hub-master\examples\image_retraining路徑下的retrain.py文件得糜,這個(gè)py文件是官方為我們準(zhǔn)備好的用作圖片分類遷移學(xué)習(xí)的樣板代碼敬扛。
關(guān)鍵的地方到了
如何用一行代碼實(shí)現(xiàn)復(fù)雜的遷移學(xué)習(xí)
因?yàn)楸救说膖ensorflow-gpu庫(kù)裝在單獨(dú)的環(huán)境下,所以我需要啟用Anaconda Prompt,然后激活我所要用的指定環(huán)境
activate my_special_env
(若用系統(tǒng)Path路徑下的python環(huán)境朝抖,則忽略上一步)
再將路徑cd到你本地retrain.py文件的路徑下(具體的路徑根據(jù)自己的實(shí)際情況更改啥箭,下圖為本人的路徑地址)
最后,最關(guān)鍵的一行代碼來(lái)了:
python retrain.py --image_dir ~/flower_photos
(~/flower_photos為下載下來(lái)解壓好的圖片集的路徑治宣,請(qǐng)根據(jù)實(shí)際情況修改)
然后急侥,遷移學(xué)習(xí)的訓(xùn)練就跑起來(lái)了~!
TensorFlow Hub小貼士
1.為什么訓(xùn)練一直卡在downloading位置侮邀?
因?yàn)門ensorFlow Hub是通過(guò)url的形式獲取的網(wǎng)上發(fā)布的模型坏怪,如果你有幸成功跑完整個(gè)訓(xùn)練,你可以在C:\Users\你的用戶名\AppData\Local\Temp\tfhub_modules中看到一個(gè)文件夾和一個(gè)txt文本
其中绊茧,txt文本的內(nèi)容如下:
Module: https://tfhub.dev/google/imagenet/inception_v3/feature_vector/1
Download Time: 2018-07-02 18:21:36.051380
Downloader Hostname: WSJ-LAPTOP (PID:18172)
從中不難看出铝宵,TensorFlow Hub是將從網(wǎng)上下載的inception_v3模型用作我們剛才遷移學(xué)習(xí)的預(yù)訓(xùn)練模型(通過(guò)閱讀retrain.py的源碼你也能發(fā)現(xiàn)這一點(diǎn)),所以如果網(wǎng)絡(luò)狀態(tài)不好或者翻墻不順的話华畏,那就自然是下載不下來(lái)的......
2.訓(xùn)練完后的的模型文件保存在哪兒鹏秋?
默認(rèn)是保存在tmp/文件夾下的,因?yàn)楸救藃etrain.py文件所在盤符為E盤亡笑,所以所有訓(xùn)練生成的瓶頸文件侣夷,ckpt文件,pb文件仑乌,label文件都在E:\tmp路徑下百拓。
3.訓(xùn)練完的模型中,輸入和輸出的tensor分別是什么绝骚?
根據(jù)官方文檔耐版,輸入的tensor是"Placeholder",輸出的tensor是"final_result"压汪。讀者可以使用官方的圖像分類預(yù)測(cè)代碼來(lái)測(cè)試已訓(xùn)練好的模型粪牲。此文不展開描述測(cè)試的具體步驟,讀者可自行查閱
4.除了默認(rèn)的模型止剖,我們還可以用哪些預(yù)訓(xùn)練模型腺阳?
retrain.py中--tfhub_moduled的默認(rèn)值即為inception_v3模型的url落君,如需替換模型,可以參考官方文檔亭引,其中列舉了所有可用到的已發(fā)布的官方預(yù)訓(xùn)練模型绎速。
若想了解更多的資料,如超參數(shù)的設(shè)置等詳細(xì)配置信息焙蚓,請(qǐng)大家自行查閱官方GitHub倉(cāng)庫(kù)
TensorFlow Hub最新中文網(wǎng)站:https://tensorflow.google.cn/hub/
若您覺得本文章對(duì)您有用纹冤,請(qǐng)您為我點(diǎn)上一顆小心心以表支持。感謝购公!