【Intel校企合作课程】基于VGG-16的猫狗识别

1.作业简介:猫狗大战


1.1问题描述:

          在这问题中,你将面一个典的机器学分类挑——猫狗大。你的任是建立一个分类模型,能够准确地区分像中是猫是狗

1.2预期解决方案:

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

1.3数据集

数据集:

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

提取码:jc34

1.4图像展示

        

2.数据预处理

2.1数据集结构

        本项目数据集只有一个train数据集,我将其切分三部分,test,train,val文件夹。

    

其中cat文件夹下包含了猫的图片,dog文件夹下包含了狗的图片。

test集中包含的数据:

train和val集中包含的数据量:

       

2.2探索性数据分析 

        在这里,我分别取了train数据集下的随机不重样10只狗,10只猫的图像进行展示:

import matplotlib.pyplot as plt
import os
from PIL import Image

cat_dir = './train/cat'
dog_dir = './train/dog'

cat_image_list = os.listdir(cat_dir)
dog_image_list = os.listdir(dog_dir)

show_image = [os.path.join(cat_dir, cat_image_list[i]) for i in range(10)]
show_image.extend([os.path.join(dog_dir, dog_image_list[i]) for i in range(10)])

plt.figure()

for i in range(1, 21):
    plt.subplot(4, 5, i)
    img = Image.open(show_image[i-1])
    plt.imshow(img)

plt.show()

2.3提取数据集

        在本项目中,为了更好地提取出图像,我构建了一个函数,能够将每个主文件夹下的图片提取出来,并且打好了标签。

# 创建自定义数据集
class SelfDataset(Dataset):
    def __init__(self, root_dir, transform=None):
        self.root_dir = root_dir
        self.transform = transform
        self.classes = ['cat', 'dog']
        self.data = self.load_data()

    def load_data(self):
        data = []
        for class_idx, class_name in enumerate(self.classes):
            class_path = os.path.j
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值