訂閱
糾錯
加入自媒體

如何用Tensorflow框架構(gòu)建用于食品分類的機器學(xué)習(xí)模型?

摘要

在今天的報告中,我們將分析食品以預(yù)測它們是否可以食用。我們應(yīng)用最先進的 遷移學(xué)習(xí)方法和 Tensorflow 框架來構(gòu)建用于食品分類的機器學(xué)習(xí)模型。

介紹

圖像分類是機器預(yù)測圖片屬于哪個類別的工作。在深度學(xué)習(xí)開始蓬勃發(fā)展之前,圖像分類等任務(wù)無法達到人類水平。這是因為機器學(xué)習(xí)模型無法確定圖像的鄰域知識。模型只接收像素級命令。由于深度學(xué)習(xí)的潛力,圖像分類任務(wù)可以利用被描述為卷積神經(jīng)網(wǎng)絡(luò) (CNN) 的模型來傳遞人類水平的性能。CNN 是一種研究圖像表征的深度學(xué)習(xí)模型。該模型無需個人參與即可確定從平面到高級的特征。該模型不僅接收像素級別的數(shù)據(jù)。該模型還通過稱為卷積的機制從圖像中獲取相鄰數(shù)據(jù)。卷積將通過將范圍內(nèi)的像素的編譯相乘并將它們相加為一個值來聚合鄰域數(shù)據(jù)。ML 模型將接受這些特征以將圖片分類為一組。深度學(xué)習(xí)雖然可以完成人類級別的生產(chǎn),但需要大量的數(shù)據(jù)。

如果我們沒有它們怎么辦?我們可以應(yīng)用一種稱為遷移學(xué)習(xí)的理論。

遷移學(xué)習(xí)是一種在海量數(shù)據(jù)上為我們的查詢訓(xùn)練模型的技術(shù)。因此,我們僅通過微調(diào)模型來準(zhǔn)備它們。我們將注意到的優(yōu)勢是模型將在一段時間內(nèi)學(xué)會。本文將幫助你練習(xí)使用 TensorFlow (Python) 進行食品圖像分類的遷移學(xué)習(xí)。因為預(yù)處理步驟是基本過程,我還將解釋如何將數(shù)據(jù)提供給我們的深度學(xué)習(xí)模型。

執(zhí)行

步驟1:導(dǎo)入庫

我們要求做的第一步是導(dǎo)入庫。我們想要 TensorFlow、NumPy、os 和 pandas。如果你還沒有修復(fù)包,你可以應(yīng)用 pip 命令來安裝所需的庫。請注意,我命令使用的 TensorFlow 是 2.4.1 版本,因此請安裝該版本。另外,如果你希望采用 GPU 來訓(xùn)練深度學(xué)習(xí)模型,請安裝 11.0 版的 CUDA,因為該版本包含 2.4.1 版的 TensorFlow。

下面是安裝和加載所需庫的代碼。# ! pip install tensorflow==2.4.1
# ! pip install pandas
# ! pip install numpy
import os
import numpy as np
import pandas as pd
import tensorflow as tf

步驟2:準(zhǔn)備數(shù)據(jù)

安排好庫后,下一步是修復(fù)我們的數(shù)據(jù)集。在此示例中,我們將應(yīng)用名為Food-5K的數(shù)據(jù)集。https://www.kaggle.com/binhminhs10/food5k該數(shù)據(jù)集由 5000 張圖片組成,分為兩類,即食物和非食物。FOOD-5K 分為訓(xùn)練、驗證和測試數(shù)據(jù)集。數(shù)據(jù)集文件夾的格式如下:

正如你在上面看到的,每個文件夾都由圖片組成。每個圖片文件名包括類別和由下劃線分隔的標(biāo)識符。我們需要產(chǎn)生帶有圖像文件名的列和帶有該文件夾排列的標(biāo)簽的數(shù)據(jù)框。修復(fù)數(shù)據(jù)集的代碼如下所示,def dframe(dtype):
   X = []
   y = []
   path = 'Food-5K/' + dtype + '/'
   for i in os.listdir(path):
       # Image
       X.a(chǎn)ppend(i)
       # Label
       y.a(chǎn)ppend(i.split('_')[0])
   X = np.a(chǎn)rray(X)
   y = np.a(chǎn)rray(y)
   df = pd.DataFrame()
   df['filename'] = X
   df['label'] = y
   return df
df_train = dframe('training')
df_val = dframe('validation')
df_test = dframe('evaluation')
df_train.head()

1  2  下一頁>  
聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯
x
*文字標(biāo)題:
*糾錯內(nèi)容:
聯(lián)系郵箱:
*驗 證 碼:

粵公網(wǎng)安備 44030502002758號