python猫狗大战讲解_机器学习 | 猫狗大战

本文介绍了使用Keras进行机器学习的猫狗大战图像分类项目。通过Keras的数据预处理、构建卷积神经网络模型并训练,探讨了训练集与验证集的表现,分析了可能的过拟合问题,并提供了数据集和模型下载链接。
摘要由CSDN通过智能技术生成

建议阅读时长 8 分钟

前言

对于机器学习来说,数据的重要性无可厚非,大部分处理机器学习的问题都是在处理数据,包括数据的清洗,归一化等,好的数据质量能大大提高模型的预测性能

但是对与初学者来说,数据变得不那么重要,因为学习机器学习主要学习算法思想以及如何实现,要善于站在前人的肩膀上对于计算机视觉领域,前辈们已经创建许多非常强大的图片数据集,如 Image-net: 『http://www.image-net.org/ 』 Google 图片数据库 『https://storage.googleapis.com/openimages/web/index.html 』可以帮助我们加速开发模型

下面要介绍的一个框架是 Keras 对于新手非常友好,本人之前使用过一阶段的 Tensorflow 感觉比较抽象,对于想快速入门机器学习的同学, Keras 是一款不错的选择

以下是三个框架这几年的流行程度,从中我们能看出一点趋势

Keras 中有许多数据集,包括用来做二分类的 IMDB 数据集、多分类的路透社数据集、做回归的波士顿房价数据集等,而本文要介绍的是二分类的图片数据集,猫狗数据集,原始数据可以在 Kaggle 官网上进行下载 『https://www.kaggle.com/c/dogs-vs-cats/data』 如果你没有 Kaggle 帐号,我将在文后附上我已经下载的数据集供你们使用

数据格式如下:

其中训练集 1000 张,验证集 500 张,测试集 500 张,总共 4000 张。

猫狗大战开始

机器学习的一般步骤是:准备数据

数据预处理(检查数据、数据归一化、将数据转换成张量等)

建立模型

查看精度和损失

预测

保存模型# 导入包

import os, shutil

import keras

from keras.layers import Conv2D, MaxPooling2D, Dense, Flatten # 卷积神经网络

from keras.models import Sequential

import matplotlib.pyplot as plt # 绘图包

from keras.preprocessing import image # 数据处理

查看数据

检查数据是数据处理过程中一项基本步骤,可以预防数数据路径、数据集数量、数据集格式等出现错误# 对创建的文件夹进行检查

dst_path='./img_data/small_datasets/'

train_cats_dir = os.path.join(dst_path, 'train/cats')

train_dogs_dir = os.path.join(dst_path, 'train/dogs')

test_cats_dir = os.path.join(dst_path, 'test/cats')

test_dogs_dir = os.path.join(dst_path, 'test/dogs')

validation_cats_dir = os.path.join(dst_path, 'validation/cats')

validation_dogs_dir = os.path.join(dst_path, 'validation/dogs')

print('total training cat images:', len(os.listdir(train_cats_dir)))

print('total training dog images:', len(os.listdir(train_dogs_dir)))

print('total validation cat images:', len(os.listdir(validation_cats_dir)))

print('total validation dog images:', len(os.listdir(validation_dogs_dir)))

print('total test cat images:', len(os.listdir(test_cats_dir)))

print('total test dog images:', len(os.listdir(test_dogs_dir)))# 运行结果

totaltraining cat images: 1000

totaltrai

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值