最近一直在撸猫,为了猫主子的事情忧三愁四,皱纹多了不少,头发也掉了好几根,神态也多了几分忧郁,唯一不变的还是那份闲鱼的懒散和浪荡的心。
要说到深度学习图像分类的经典案例之一,那就是猫狗大战了。猫和狗在外观上的差别还是挺明显的,无论是体型、四肢、脸庞和毛发等等, 都是能通过肉眼很容易区分的。
那么如何让机器来识别猫和狗呢?这就需要使用卷积神经网络来实现了。
网上已经有不少人写过这案例了,我也来尝试下练练手。
完整代码:https://github.com/ADlead/Dogs-Cats.git
一. 数据集的准备
猫狗照片的数据集直接从kaggle官网(https://www.kaggle.com/c/dogs-vs-cats)下载即可,下载后解压,可以看到有训练集和测试集

train文件夹内容如下:

test1文件夹内容如下:

编写代码将图片存储成batch文件
import cv2 as cv
import os
import numpy as np
import random
import pickle
import time
start_time = time.time()
data_dir = './data'
batch_save_path = './batch_files'
# 创建batch文件存储的文件夹
os.makedirs(batch_save_path, exist_ok=True)
# 图片统一大小:100 * 100
# 训练集 20000:100个batch文件,每个文件200张图片
# 验证集 5000:一个测试文件,测试时 50张 x 100 批次
# 进入图片数据的目录,读取图片信息
all_data_files = os.listdir(os.path.join(data_dir, 'train/'))
# print(all_data_files)
# 打算数据的顺序
random.shuffle(all_data_files)
all_train_files = all_data_files[:20000]
all_test_files = all_data_files[20000:]
train_data = []
train_label = []
train_filenames = []
test_data = []
tes

本文介绍了使用深度学习进行猫狗图像识别的过程,包括数据集准备、卷积神经网络(CNN)的编写、TensorFlow计算图的搭建、模型训练与测试。通过1万步训练后,模型在测试集上达到0.82的平均准确率。最后展示了模型的分类结果,并指出可通过优化网络参数、学习率和图像增强等技术提高识别准确率。
最低0.47元/天 解锁文章
411

被折叠的 条评论
为什么被折叠?



