实践作业:经典机器学习分类挑战——猫狗大战

该博客围绕猫狗图像识别展开,先介绍作业问题与数据集划分,接着进行数据预处理,包括探索性分析、提取与增强。使用卷积神经网络,以VGG - 16架构为基础并更改结构。在GPU上训练模型,后转移到CPU,还利用oneAPI组件进行迁移学习、优化和量化,最后总结模型评估指标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 作业简介

1.1问题描述

        Cats vs. Dogs(猫狗大战)是一道经典赛题,利用给定的包含猫、狗图片的数据集,用算法实现猫和狗的识别(二分类)。问题中,你将面一个典的机器学分类挑——猫狗大。你的任是建立一个分类模型,能够准确地区分图猫狗大战

        你的目标是通过训练一个机器学习模型,使其在给定一张图像时能够准确地预测图像中是猫还是狗。模型应该能够推广到未见过的图像,并在测试数据上表现良好。将其部署到模的生产环境中——里推理时间和二分类准确度(F1分数)将作为评分的主要依据

1.2 数据集及图像展示

数据集的划分:

训练集(TRAIN):顾名思义指的是用于训练的样本集合,主要用来训练神经网络中的参数。

验证集(VAL):从字面意思理解即为用于验证模型性能的样本集合.不同神经网络在训练集上训练结束后,通过验证集来比较判断各个模型的性能.这里的不同模型主要是指对应不同超参数的神经网络,也可以指完全不同结构的神经网络。

测试集(TEST):对于训练完成的神经网络,测试集用于客观的评价神经网络的性能。

所用数据集:

链接:百度网盘 请输入提取码 

提取码:jc34

部分数据集图像展示:

猫:

狗:

2 数据预处理

2.1 数据集结构

 本项目数据集共由三部分组成,分别包含为TRAIN,TEST,VAL文件夹。

每个文件夹下有两个子文件夹,分别为CTAS和DOGS子文件夹。

其中, CATS子文件夹下包含了猫的图像。

DOGS子文件夹下包含了狗的图像

2.2探索性数据分析

分别取TRAIN数据集下的随机不重样3个猫,3个狗的图像进行展示。

import cv2

train_dir = 'wyj/TRAIN' # 图片路径

# 猫和狗的路径
cat_imgs = [fn for fn in os.listdir(f'{train_dir}/CATS') if fn.endswith('.jpeg')]
dog_imgs = [fn for fn in os.listdir(f'{train_dir}/DOGS') if fn.endswith('.jpeg')]


print(f'猫的数量为: {len(cat_imgs)}')
print(f'狗的数量为: {len(dog_imgs)}')

# 随机不重样的抽选3个猫,3个狗
select_CATS = np.random.choice(cat_imgs, 3, replace = False)
select_DOGS = np.random.choice(dog_imgs, 3, replace = False)

# 使用pit打印出来
fig = plt.figure(figsize = (20,10))
for i in range
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值