訂閱
糾錯(cuò)
加入自媒體

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

摘要

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

介紹

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

如果我們沒(méi)有它們?cè)趺崔k?我們可以應(yīng)用一種稱(chēng)為遷移學(xué)習(xí)的理論。

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

執(zhí)行

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

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

下面是安裝和加載所需庫(kù)的代碼。# ! 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ù)

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

正如你在上面看到的,每個(gè)文件夾都由圖片組成。每個(gè)圖片文件名包括類(lèi)別和由下劃線分隔的標(biāo)識(shí)符。我們需要產(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  下一頁(yè)>  
聲明: 本文由入駐維科號(hào)的作者撰寫(xiě),觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

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

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