基于Logistic Regression的猫图片的识别

此文章是本人看了吴恩达的深度学习与神经网络后所做的课后作业。

本人编程的过程中发现了吴恩达所提供的课后作业的某些地方有些许错误,或是某些库中的函数已被淘汰。

本文基于吴恩达课程所提供的代码进行了些许更新与改进。

并且在最后测试图片时发现,识别准确率着实很低(尽管在测试集中的准确率达到了70%, 但本人重新找了很多与猫无关的照片,发现都会被识别为猫,可见这一模型的鸡肋)

O、前期准备

0.1 训练集与测试集

https://download.csdn.net/download/Hubert321/12661358

0.2 所需标准库

本文所需标准库:

import numpy as np
import matplotlib.pyplot as plt
import h5py
import cv2

一、读取数据集

首先,你需要调用h5py库中的函数来读取h5文件中的数据(h5文件中存储了图片信息)

将train_catvnoncat.h5与test_catvnoncat.h5文件放置与工程文件一起即可。

#读取数据集
def load_dataset():
    train_dataset = h5py.File('train_catvnoncat.h5', "r")
    train_set_x_orig = np.array(train_dataset["train_set_x"][:]) # your train set features
    train_set_y_orig = np.array(train_dataset["train_set_y"][:]) # your train set labels
    test_dataset = h5py.File('test_catvnoncat.h5', "r")
    test_set_x_orig = np.array(test_dataset["test_set_x"][:]) # your test set features
    test_set_y_orig = np.array(test_dataset["test_set_y"][:]) # your test set labels
    classes = np.array(test_dataset["list_classes"][:]) # the list of classes
    train_set_y_orig = train_set_y_orig.reshape((1, train_set_y_orig.shape[0]))
    test_set_y_orig = test_set_y_orig.reshape((1, test_set_y_orig.shape[0]))
    return train_set_x_orig, train_set_y_orig, test_set_x_orig, test_set_y_orig, classes
#读取数据集
train_set_x_orig, train_set_y, test_set_x_orig, test_set_y, classes = load_dataset()

在本题所读取的训练数据集中,共有209张图片,在测试训练集中,共有50张图片。每张图片为64*64大小的RGB图片。

其中,train_set_x_orig 中存储了训练集中每张图片的信息,train_set_y中存储了训练集中每张图片”是否为猫“的信息。test_set_x_orig和test_set_y同理。classes中存储的是 [b’non-cat’ b’cat’]

所以,train_set_x_orig.shape = (209, 64, 64, 3), train_set_y.shape = (1,209), test_set_x_orig = (50,64,64,3), test_set_y = (1,50), classes = (2,)

二、图片预处理

首先要将每张图片的矩阵信息转化为向量,也就是将(64,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值