Python做個貓狗識別系統(tǒng),給人美心善的鄰居

寵物真的看著好治愈
誰不想有一只屬于自己的乖乖寵物捏~
這篇文章中我放棄了以往的model.fit()訓(xùn)練方法,
改用model.train_on_batch方法。
兩種方法的比較:
?model.fit():用起來十分簡單,對新手非常友好
?model.train_on_batch():封裝程度更低,可以玩更多花樣。
此外我也引入了進度條的顯示方式,更加方便我們及時查看模型訓(xùn)練過程中的情況,可以及時打印各項指標(biāo)。
?? 我的環(huán)境:
語言環(huán)境:Python3.6.5
編譯器:jupyter notebook
深度學(xué)習(xí)環(huán)境:TensorFlow2.4.1
顯卡(GPU):NVIDIA GeForce RTX 3080

一、前期工作
1. 設(shè)置GPU
如果使用的是CPU可以注釋掉這部分的代碼。

2. 導(dǎo)入數(shù)據(jù)

3. 查看數(shù)據(jù)


二、數(shù)據(jù)預(yù)處理
1. 加載數(shù)據(jù)
使用image_dataset_from_directory
方法將磁盤中的數(shù)據(jù)加載到tf.data.Dataset中

TensorFlow版本是2.2.0的同學(xué)可能會遇到
module ‘tensorflow.keras.preprocessing’ has no attribute 'image_dataset_from_directory’的報錯,
升級一下TensorFlow就OK了


我們可以通過class_names輸出數(shù)據(jù)集的標(biāo)簽。標(biāo)簽將按字母順序?qū)?yīng)于目錄名稱。

2. 再次檢查數(shù)據(jù)

Image_batch是形狀的張量(8, 224, 224, 3)。這是一批形狀224x224x3的8張圖片(最后一維指的是彩色通道RGB)。
Label_batch是形狀(8,)的張量,這些標(biāo)簽對應(yīng)8張圖片
3. 配置數(shù)據(jù)集
shuffle() :打亂數(shù)據(jù),關(guān)于此函數(shù)的詳細介紹可以參考:https://zhuanlan.zhihu.com/p/42417456
prefetch() :預(yù)取數(shù)據(jù),加速運行,其詳細介紹可以參考我前兩篇文章,里面都有講解。
cache() :將數(shù)據(jù)集緩存到內(nèi)存當(dāng)中,加速運行

如果報 AttributeError: module ‘tensorflow._api.v2.data’ has no attribute ‘AUTOTUNE’ 錯誤,就將 AUTOTUNE = tf.data.AUTOTUNE 更換為 AUTOTUNE = tf.data.experimental.AUTOTUNE,這個錯誤是由于版本問題引起的。
4. 可視化數(shù)據(jù)



免費發(fā)放python學(xué)習(xí)資料? 點贊+評論學(xué)習(xí)