一個小例子帶你輕鬆Keras圖像分類入門
雲棲君導讀: 本文通過一個具體的小例子帶你入門Keras圖像分類,希望各位能夠通過這篇文章能夠學習到一些圖像分類的基本操作。
這篇文章主要介紹一些在Keras中需要的常見操作。這些常見操作包括:如何保存模型並在稍後使用它們進行預測,顯示數據集中的圖像以及從系統中載入圖像並預測其類別。
訓練模型是一個循序漸進的過程,十分緩慢。但是,在這裡,我們需要訓練我們的模型一次,然後保存,這樣我們就可以隨時載入,並用它來預測新的圖像。Keras將模型保存為.h5格式,如果你在作者發布的第一個教程中已經安裝過h5py,請跳過,如果沒有,請運行:
我們還需要matplotlib來形象化我們的圖像,因此,運行:
這是第一個小例子的代碼:
想保存模型,需要在model.fit()之後添加:
推理是指使用我們的模型預測新圖像的過程。在你的代碼中,注釋上:model.fit
用以替換以下的內容:model.load_weights("mnistmodel.h5")
我們的代碼現在看起來像這樣:
我們在這裡所做的是從保存的模型文件中載入出模型的參數,評估函數在測試數據集上運行預測,並給出預測的準確性。
截止到目前,以上演示了如何保存模型並使用它們進行預測。真正需要解決的問題是載入出一個特定的圖像,並確定它是屬於什麼類型的。
第一步是添加下面的代碼來獲得測試中的特定圖像的預測:
在這裡,我們只是選擇一個隨機圖像,在這種情況下,在測試集的索引130處,我們創建一個平整的副本,重新整形:(1,784)。
我們將這個副本加入到我們的模型中,然後我們獲得預測並列印出來。
在代碼中注釋掉model.evaluate,添加上面的代碼並運行它。
你將會輸出 class :6
現在我們已經預測了,接下來我們就需要使用matplolib來顯示圖像及其預測的類型:
這些操作是非常必要的,因為使用matplotlib將會非常直觀的顯示我們的預測結果是否正確。
這樣我們的代碼就會變成:
運行這段代碼,你的輸出應該是下面這張圖片,這意味著我們已經建立了一個基本的數字識別系統,你也可以嘗試不同的測試圖像索引,看看將得到些什麼。
但是,如果想引入測試集中沒有的圖像,那麼你需要將以下圖像保存到你的系統中,並將其複製到python文件所在的目錄中。
運行下面的代碼:
你可能會注意到我們使用了一些新的東西,首先我們從Keras.preprocessing中導入了圖像,然後加了:
在第一行中,我們從磁碟載入圖像,並指定它應該調整大小為28*28*1,請記住,這是原始mnist圖像的尺寸,它的作用是讓我們保持圖像識別過程中的穩定。接下來,我們將圖像轉換為一個像素數組,這才是我們真正要識別的。運行它並自己檢查結果,預測其結果是否是3。
-END-
雲棲社區
ID:yunqiinsight
雲計算丨互聯網架構丨大數據丨機器學習丨運維
點此閱讀詳細內容!


TAG:雲棲社區 |