從小白到入門:用Keras進行圖像基礎分類

2020-12-07 IT168

  【IT168 資訊】在這篇文章中,將解釋一些在keras中經常需要的常見操作。首先,如何保存模型並使用它們進行預測,從數據集中顯示圖像並從加載系統中圖像並預測其類別。

  如果你還沒有這樣做,可以啟動你的IDE跟著文章,一起來操作。

  保存模型

  訓練模型是一個非常緩慢的過程,沒有人希望每次都這樣做,幸運的是,我們只需要訓練我們的模型一次,保存,然後就可以隨時加載,並用它來預測新的圖像。

  Keras將模型保存為h5格式,所以如果你在發布的第一個教程中跳過了h5py的安裝,請運行:

  我們還需要matplotlib來形象化我們的圖像,因此,運行

  這是第一個教程的代碼:

  了保存模型,只需在模型之後添加以下內容。

  推理

  推理是指使用我們的模型預測新圖像的過程。

  在你的代碼中,標註出

  取而代之的是下面的內容。

  我們的代碼現在是這樣的。

  我們在這裡所做的是從保存的模型文件中加載模型的參數,評估函數在測試數據集上運行預測,並返回我們預測的準確性。

  到目前為止,已經演示了如何保存模型並稍後使用它們進行預測,然而,這些都是無聊的事情,真正的協議是能夠加載一個特定的圖像,並確定它屬於什麼類別。

  第一步是添加下面的代碼以獲得測試的特定圖像的過程。

  這裡我們選擇一個隨機的圖像,在這個例子中,從測試集的索引130中,我們創建了一個扁平的副本,它被重新塑造。

  將這個副本加入到我們的模型中,接下來得到預測並列印出來。

  在代碼中注釋掉model.evaluate,添加上面的代碼並運行它。

  你的輸出應該是這樣的:

  現在已經有了預測,我們使用matplotlib來顯示圖像和它的預測類別。

      這裡的重塑操作是必要的,以使matplotlib顯示圖像

  你的更新代碼應該都是這樣的  

  運行它,得到的輸出應該是這個。比較簡單,因為已經建立了一個基本的數字識別系統。

  鼓勵嘗試不同的測試圖像索引,可以親自查看結果如何。

  但是,如果想引入未包含在測試集中的圖像,那麼請將下面的圖像保存到系統中,並將其複製到python文件所在的目錄中。

  運行下面的代碼

  你可能會注意到這裡有一些新東西,首先是從keras.preprocessing導入圖像。

  接下來,我們加了

  在第一行中,我們從磁碟加載圖像,並指定它應該調整大小為28 x 28 x 1,請記住,這是原始mnist圖像的尺寸,所以它的優點就是保持恆定。

  接下來,我們將圖像轉換為一個像素數組,這就是全部。

  運行它並自己檢查結果,查看預測結果是否為3。

相關焦點

  • 圖像分類入門,輕鬆拿下90%準確率|教你用Keras搞Fashion-MNIST
    原作 Margaret Maynard-Reid王小新 編譯自 TensorFlow的Medium量子位 出品 | 公眾號 QbitAI這篇教程會介紹如何用TensorFlow裡的tf.keras函數,對Fashion-MNIST數據集進行圖像分類。
  • 掌握深度學習,數據不足也能進行圖像分類!
    ——吳恩達圖像分類即根據固定類別對輸入的圖像設置標籤。儘管計算機視覺過於簡單,但是它在實際中仍有廣泛的應用,而圖像分類就是其中的核心問題之一。在本文中,小芯將示範如何在數據不足的情況下應用深度學習。現已創建特製汽車和巴士分類器兩個數據集,每個數據集包含100個圖像。其中,訓練集有70個圖像,驗證集有30個。挑戰1.
  • 用Keras和「直方圖均衡」為深度學習實現「圖像擴充」
    使用ImageDataGenerator函數創建一個圖像生成器用Keras進行圖像數據的擴充是非常簡單的,在這裡,我們應該感謝Jason Brownlee,因為是他給我們提供了一個非常全面、到位的Keras圖像擴充教程。
  • Keras入門系列教程:兩分鐘構建你的第一個神經網絡模型
    引言Keras是一個用於構建和訓練深度學習模型的高級API, 後端計算主要使用TensorFlow或者Theano, 由於Theano已停止開發新功能轉入維護階段, 而且目前最新版的TensorFlow已經包含了Keras模塊, 所以本教程採用基於TensorFlow的Keras進行講解, TensorFlow版本1.4.1
  • 初學者怎樣使用Keras進行遷移學習
    訓練數據必須以特定格式存儲,以便饋送到網絡中進行訓練。我們將使用Keras中提供的ImageDataGenerator來訓練我們的可用數據模型。這樣,就代碼而言,該過程變得更加簡單。 必須有一個主數據文件夾,在該數據文件夾中,每個包含相應圖像的數據類必須有一個文件夾。文件夾的名稱必須是其各自類的名稱。
  • 手把手教你用Keras進行多標籤分類(附代碼)
    本文將通過拆解SmallVGGNet的架構及代碼實例來講解如何運用Keras進行多標籤分類。本文的靈感來源於我收到的一封來自PyImageSearch的讀者Switaj的郵件。 問題是我需要訓練一個分類器來將物品分到不同的類別中: 服飾類別:襯衫、裙子、褲子、鞋類等顏色:紅、藍、黑等質地:棉、羊毛、絲、麻等 我已經為這三個不同的類別訓練了三個不同的卷積神經網絡(下文將稱為CNN),效果非常好。
  • 用TensorFlow和Keras構建卷積神經網絡
    今天將使用TensorFlow的eager API來訓練圖像分類器,以辨別圖像內容是狗還是貓。人工神經網絡在許多領域都展現出了其強大功能,最近已經應用到很多行業中。然而,不同深度學習結構各有以下優勢:· 圖像分類(卷積神經網絡)。· 圖像、音頻和文本生成(GANS,RNN)。
  • 初學AI神經網絡應該選擇Keras或是Pytorch框架?
    軟體開發者畢竟不是科學家,很多時候簡單易學易用是程式設計師選擇的第一要素。目前,兩個主要的深度學習庫Keras和Pytorch獲得了大量關注,主要是因為它們的使用比較簡單。看到這些對於一個AI剛入門的開發者確實有些茫然。keras是google的一個大佬開發的一個高度封裝的模型框架,已開源到github上。起初的計算後臺為Theano(和tensorflow差不多的一個框架),後來經過一系列的劇情,現在默認的計算後臺就為tensorflow了。
  • 5分鐘入門GANS:原理解釋和keras代碼實現
    它是一種可替代的自適應變分編碼器(VAEs)學習圖像的潛在空間,以生成合成圖像。它的目的是創造逼真的人工圖像,幾乎無法與真實的圖像區分。GAN的直觀解釋生成器和鑑別器網絡:生成器網絡的目的是將隨機圖像初始化並解碼成一個合成圖像。
  • 了解1D和3D卷積神經網絡|Keras
    當我們說卷積神經網絡(CNN)時,通常是指用於圖像分類的2維CNN。但是,現實世界中還使用了其他兩種類型的卷積神經網絡,即1維CNN和3維CNN。在本指南中,我們將介紹1D和3D CNN及其在現實世界中的應用。我假設你已經大體上熟悉卷積網絡的概念。
  • 如何可視化卷積網絡分類圖像時關注的焦點
    在我們使用 CNN 進行圖片分類時,模型到底關注的是圖像的哪個區域?Grad-CAM 利用卷積網絡最後一個特徵圖的信息,並加權對應的梯度而構建模型分類的熱力圖,通過該熱力圖,我們可以清楚地了解哪一塊區域對於類別是最重要的。你在訓練神經網絡進行圖片分類時,有沒有想過網絡是否就是像人類感知信息一樣去理解圖像?
  • 使用卷積神經網絡,構建圖像分類模型檢測肺炎
    來源 | DeepHub IMBA作者 | Eunjoo Byeon在本篇文章中,我將概述如何使用卷積神經網絡構建可靠的圖像分類模型,以便從胸部x光圖像中檢測肺炎的存在。肺炎是一種常見的感染,它使肺部的氣囊發炎,引起呼吸困難和發燒等症狀。
  • 如何學好圖像處理——從小白到大神?
    縱向來說,數字圖像處理研究的歷史相當悠久;橫向來說,數字圖像處理研究的話題相當廣泛。  數字圖像處理的歷史可以追溯到近百年以前,大約在1920年的時候,圖像首次通過海底電纜從英國倫敦傳送到美國紐約。圖像處理的首次應用是為了改善倫敦和紐約之間海底電纜發送的圖片質量,那時就應用了圖像編碼,被編碼後的圖像通過海底電纜傳送至目的地,再通過特殊設備進行輸出。
  • 用Keras搭建GAN:圖像去模糊中的應用(附代碼)
    生成器生成器要生成清晰圖像,網絡是基於ResNet blocks的,它可以記錄對原始模糊圖像操作的過程。原文還使用了基於UNet的版本,但我目前還沒有實現。這兩種結構都可以很好地進行圖像去模糊。我們在輸入到輸出增加一個連接,然後除以2 來對輸出進行歸一化。這就是生成器了! 我們再來看看判別器的結構吧。判別器判別器的目標就是要確定一張輸入圖片是否為合成的。因此判別器的結構採用卷積結構,而且是一個單值輸出。
  • 如何在PyTorch和TensorFlow中訓練圖像分類模型
    介紹圖像分類是計算機視覺的最重要應用之一。它的應用範圍包括從自動駕駛汽車中的物體分類到醫療行業中的血細胞識別,從製造業中的缺陷物品識別到建立可以對戴口罩與否的人進行分類的系統。在所有這些行業中,圖像分類都以一種或另一種方式使用。他們是如何做到的呢?他們使用哪個框架?
  • Keras和TensorFlow究竟哪個會更好?
    而基於 TensorFlow 基礎上構建的 Keras 提供了簡單易用的 API 接口,非常適合初學者使用。 2017 年 1 月,隨著 Keras 的作者、谷歌 AI 研究員 Francois Chollet 的一條消息的宣布,Keras 成為第一個被添加到 TensorFlow 核心的高級別框架,Keras 從此成為 Tensorflow 的默認 API。
  • 手把手教你用PyTorch實現圖像分類器(第一部分)
    最後一個項目是用PyTorch創建一個102種不同類型的花的圖像分類器。在做這個final project的時候,很多同學都遇到了類似的問題和挑戰。當我接近完成的時候,我決定與大家分享一些在未來對他人有益的建議和見解。通過3篇短文,介紹如何實現圖像分類器的概念基礎——這是一種能夠理解圖像內容的算法。
  • 使用tensorflow進行音樂類型的分類
    更好的選擇是依靠自動音樂類型分類。與我的兩位合作者張偉信(Wilson Cheung)和顧長樂(Joy Gu)一起,我們試圖比較不同的音樂樣本分類方法。特別是,我們評估了標準機器學習和深度學習方法的性能。我們發現特徵工程是至關重要的,而領域知識可以真正提高性能。在描述了所使用的數據源之後,我對我們使用的方法及其結果進行了簡要概述。
  • 二分類、多分類、回歸任務,一個項目get競賽必備模型
    近日,有開發者在 GitHub 上開源了一個包含數據挖掘類比賽常用模型的項目,主要涵蓋二分類、多分類以及回歸任務。項目代碼全部使用 Python 實現。實現、xgboost 實現、keras 實現和 pytorch 實現:lightgbmbinary_class.py :lightgbm 實現的二分類multi_class.py :lightgbm 實現的多分類regression.py :lightgbm 實現的回歸multi_class_custom_feval.py
  • 使用Keras將音樂分類為不同類型
    在本文中,我們將使用機器學習把音樂片段分類為不同類型。  我們將使用GTZAN genre collection數據集。  機器學習模型創建,訓練和測試   創建模型  from keras import models from keras import layers model = models.Sequential() model.add(layers.Dense(256, activation='relu', input_shape=(