如何用Tensorflow框架构建用于食品分类的机器学习模型?

磐创AI
关注

摘要

在今天的报告中,我们将分析食品以预测它们是否可以食用。我们应用最先进的 迁移学习方法和 Tensorflow 框架来构建用于食品分类的机器学习模型。

介绍

图像分类是机器预测图片属于哪个类别的工作。在深度学习开始蓬勃发展之前,图像分类等任务无法达到人类水平。这是因为机器学习模型无法确定图像的邻域知识。模型只接收像素级命令。由于深度学习的潜力,图像分类任务可以利用被描述为卷积神经网络 (CNN) 的模型来传递人类水平的性能。CNN 是一种研究图像表征的深度学习模型。该模型无需个人参与即可确定从平面到高级的特征。该模型不仅接收像素级别的数据。该模型还通过称为卷积的机制从图像中获取相邻数据。卷积将通过将范围内的像素的编译相乘并将它们相加为一个值来聚合邻域数据。ML 模型将接受这些特征以将图片分类为一组。深度学习虽然可以完成人类级别的生产,但需要大量的数据。

如果我们没有它们怎么办?我们可以应用一种称为迁移学习的理论。

迁移学习是一种在海量数据上为我们的查询训练模型的技术。因此,我们仅通过微调模型来准备它们。我们将注意到的优势是模型将在一段时间内学会。本文将帮助你练习使用 TensorFlow (Python) 进行食品图像分类的迁移学习。因为预处理步骤是基本过程,我还将解释如何将数据提供给我们的深度学习模型。

执行

步骤1:导入库

我们要求做的第一步是导入库。我们想要 TensorFlow、NumPy、os 和 pandas。如果你还没有修复包,你可以应用 pip 命令来安装所需的库。请注意,我命令使用的 TensorFlow 是 2.4.1 版本,因此请安装该版本。另外,如果你希望采用 GPU 来训练深度学习模型,请安装 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:准备数据

安排好库后,下一步是修复我们的数据集。在此示例中,我们将应用名为Food-5K的数据集。https://www.kaggle.com/binhminhs10/food5k该数据集由 5000 张图片组成,分为两类,即食物和非食物。FOOD-5K 分为训练、验证和测试数据集。数据集文件夹的格式如下:

正如你在上面看到的,每个文件夹都由图片组成。每个图片文件名包括类别和由下划线分隔的标识符。我们需要产生带有图像文件名的列和带有该文件夹排列的标签的数据框。修复数据集的代码如下所示,def dframe(dtype):
   X = []
   y = []
   path = 'Food-5K/' + dtype + '/'
   for i in os.listdir(path):
       # Image
       X.append(i)
       # Label
       y.append(i.split('_')[0])
   X = np.array(X)
   y = np.array(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()

声明: 本文由入驻OFweek维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存