下来我会详细介绍如何在 Ubuntu 上运行你训练和部署的 菜品识别模型,确保每一步都能理解并能在你的系统中运行。
- 环境准备
1.1 安装必要的软件
在 Ubuntu 上,首先需要安装 Python 和相关的依赖库:
更新系统: 打开终端,运行以下命令:
bash
sudo apt update && sudo apt upgrade -y
安装 Python 及 pip:
确保你的系统已经安装了 Python 3 和 pip,如果没有,可以使用以下命令安装:
bash
sudo apt install python3 python3-pip
安装 TensorFlow 和其他依赖:
使用 pip 来安装 TensorFlow 和其他必需的库:
bash
pip3 install tensorflow numpy matplotlib pillow scikit-learn
如果你有 GPU,确保你已经安装了 CUDA 和 cuDNN。你可以参考 TensorFlow GPU 安装文档 来完成这一步。
- 数据准备
2.1 下载数据集
你可以使用 Food-101 数据集,它包含 101 类菜品的图像。首先,下载并解压这个数据集:
下载数据集:
bash
wget https://data.vision.ee.ethz.ch/cvl/food-101.tar.gz
解压数据集:
bash
tar -xvzf food-101.tar.gz
解压后的文件夹将是 food-101,其中包含 train 和 test 文件夹,分别用于训练和验证。
2.2 数据预处理
在 TensorFlow 中,你可以使用 ImageDataGenerator 来处理和增强数据。以下是处理图像数据的代码:
python
import tensorflow as tf
from tensorflow.keras.preprocessing.image import ImageDataGenerator
# 设置训练和验证数据集路径
train_dir = "food-101/train"
val_dir = "food-101/test"
# 定义数据预处理和增强方法
train_datagen = ImageDataGenerator(
rescale=1./255, # 归一化图像
rotation_range=20, # 随机旋转
width_shift_range=0.2, # 水平平移
height_shift_range=0.2, # 垂直平移
shear_range=0.2, # 剪切变换
zoom_range=0.2, # 随机缩放
horizontal_flip=True, # 水平翻转
fill_mode="nearest" # 填充方式
)
val_datagen = ImageDataGenerator(rescale=1./255)
# 加载并进行数据生成
train_generator = train_datagen.flow_from_directory(
train_dir,
target_size=(150, 150), # 统一大小
batch_size=32, # 每批次32张图片
class_mode="categorical" # 分类任务
)
val_generator = val_datagen.flow_from_directory(
val_dir,
target_size=(