首页 > 其他分享 >使用卷积神经网络实现猫和狗的预测

使用卷积神经网络实现猫和狗的预测

时间:2023-05-22 16:23:49浏览次数:32  
标签:预测 训练 卷积 add batch 神经网络 train import model

1、将图片数据分为训练集和验证集,训练集中猫和狗各300张图片,验证集中猫和狗各200张图片。

2、构建一个神经网络模型,并使用划分好的训练集数据训练模型,使用验证集的数据验证模型,训练迭代30次,建议使用生成器。

3、获取训练过程中的训练精度、验证精度,并使用matplotlib来绘制精度变化曲线,要求模型的验证精度达到80%以上(注意不是训练精度),可以使用数据增强、预训练的卷积神经网络等方法。

4、使用训练好的模型做猫狗预测,至少预测2张图片(有猫有狗),只需要在控制台中打印输出预测的结果即可。

5、撰写实验报告,将实验代码、预测结果和绘制精度变化曲线截图粘贴到实验报告中。

 

相关步骤:

  1、导入相关库

    from keras.preprocessing.image import ImageDataGenerator

    import pathlib

    from tensorflow import keras

    from keras import layers

 

    2、加载数据

    # 加载数据

    train_idg = ImageDataGenerator(rescale=1. / 255)

    valid_idg = ImageDataGenerator(rescale=1. / 255)

    new_base_dir = pathlib.Path("D:\大学\大学作业\学习文件\python深度学习\实验三  \cats_vs_dogs_small")

    train_dataset = train_idg.flow_from_directory(

        new_base_dir / "train",

        target_size=(180, 180),

        batch_size=6,

    class_mode='binary')

    validation_dataset = valid_idg.flow_from_directory(

        new_base_dir / "validation",

        target_size=(180, 180),

        batch_size=6,

        class_mode='binary')

    可以查看数据

    for i in train_dataset:

    print(i)

    查看数据格式

    for data_batch, labels_batch in train_dataset:

        print("data batch shape:", data_batch.shape)

        print("labels batch shape:", labels_batch.shape)

        break

 

    3、构建模型

    from keras import models

    from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

    model = models.Sequential()

    model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(180, 180, 3)))

    model.add(MaxPooling2D((2,2)))

    model.add(Conv2D(64, (3, 3), activation='relu'))

    model.add(MaxPooling2D((2,2)))

    model.add(Conv2D(128, (3, 3), activation='relu'))

    model.add(MaxPooling2D((2,2)))

    model.add(Conv2D(128, (3, 3), activation='relu'))

    model.add(MaxPooling2D((2,2)))

    model.add(Flatten())

    model.add(Dense(512, activation='relu'))

    model.add(Dense(1, activation='sigmoid'))

    model.summary()

 

    4、编译模型

    # 编译模型

    model.compile(loss="binary_crossentropy",

              optimizer="rmsprop",

              metrics=["accuracy"])

 

    5、训练模型

    history = model.fit(

train_dataset,epochs=30,validation_data=validation_dataset,steps_per_epoch=100,val    idation_steps=50)

 

    6、训练精度,验证精度的可视化,绘制折线图

    import matplotlib.pyplot as plt

    plt.rcParams['font.sans-serif'] = ['SimHei']

    train_acc = history.history.get('accuracy')

    valid_acc = history.history.get('val_accuracy')

    data_x = range(1, len(train_acc) + 1)

    plt.plot(data_x, train_acc, color='red', label='训练精度')

    plt.plot(data_x, valid_acc, color='green', label='验证精度')

    plt.legend()

    可视化结果

实验分析与结论

    使用卷积神经网络实现猫和狗的预测,使用的是二分类,因此使用'sigmoid'来进行对类别的分类。该实验也是要按照加载数据、构建深度学习模型、训练模型(需要添加验证集)、预测的步骤来进行。此实验所训练模型数据较低,在设置实验训练数据大小时需要匹配。

标签:预测,训练,卷积,add,batch,神经网络,train,import,model
From: https://www.cnblogs.com/beichens/p/17420939.html

相关文章

  • 基于pytorch搭建AlexNet神经网络用于花类识别
     ......
  • 跟姥爷深度学习6 卷积网络的数学计算
    一、前言前面简单用TensorFlow的全连接网络做了气温预测然后深入了解了一下全连接网络的数学计算,接着用CNN(卷积)网络做了手写数字识别,本篇就接着这个节奏来看卷积网络的数学计算。二、卷积网络回顾前面我们使用卷积网络时并没有说太明白,特别是一些参数的含义,这里先补一下功课。......
  • 利用卷积神经网络的Text-CNN 文本分类
    访问【WRITE-BUG数字空间】_[内附完整源码和文档]TextCNN是利用卷积神经网络对文本进行分类的算法,由YoonKim在“ConvolutionalNeuralNetworksforSentenceClassification”一文(见参考[1])中提出.TextCNN是利用卷积神经网络对文本进行分类的算法,由YoonKim在“Conv......
  • CVPR 2023 | 神经网络超体?新国立LV lab提出全新网络克隆技术
    前言 神经网络开发到100%会发生什么?神经网络的究极形态又是什么?何为网络超体?上述问题的答案可能可以在电影超体(Lucy)中找到。本文转载自机器之心仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息......
  • COMP30027 图书预测算法
    SchoolofComputingandInformationSystemsTheUniversityofMelbourneCOMP30027,MachineLearning,2023Project2:BookRatingPredictionTask:BuildaclassifiertopredicttheratingofbooksDue:GroupRegistration:Friday5May,5pmStageI:Friday19May......
  • Python中TensorFlow的长短期记忆神经网络(LSTM)、指数移动平均法预测股票市场和可视化
    原文链接:http://tecdat.cn/?p=23689 最近我们被客户要求撰写关于长短期记忆神经网络的研究报告,包括一些图形和统计输出。本文探索Python中的长短期记忆(LSTM)网络,以及如何使用它们来进行股市预测 ( 点击文末“阅读原文”获取完整代码数据******** )。在本文中,你将看到如何使用......
  • 动手学深度学习(十二) NLP循环神经网络进阶
    GRURNN存在的问题:梯度较容易出现衰减或爆炸(BPTT)⻔控循环神经⽹络:捕捉时间序列中时间步距离较⼤的依赖关系RNN:ImageNameGRU:ImageName•重置⻔有助于捕捉时间序列⾥短期的依赖关系;•更新⻔有助于捕捉时间序列⾥⻓期的依赖关系。载入数据集importos......
  • MATLAB仿真bp神经网络预测电力负荷 商品形式:程序 实
    MATLAB仿真bp神经网络预测电力负荷商品形式:程序实现功能:使用前几日负荷数据预测未来负荷数据使用bp神经网络得到误差分析图ID:1180643715580028......
  • 文本分类(下)-卷积神经网络(CNN)在文本分类上的应用
    1简介原先写过两篇文章,分别介绍了传统机器学习方法在文本分类上的应用以及CNN原理,然后本篇文章结合两篇论文展开,主要讲述下CNN在文本分类上的应用。前面两部分内容主要是来自两位博主的文章(文章中已经给出原文链接),是对两篇论文的解读以及总结,基本上阐释了CNN文本分类模型;后半部分......
  • 基于核函数的极限学习机K-ELM做数据预测。 可做功率预测(风功率预测),
    基于核函数的极限学习机K-ELM做数据预测。可做功率预测(风功率预测),程序注释详细方便阅读,可替换自己的数据做预测。预测结果准确,显示相对误差、绝对误差。matlab程序,可做功率预测数据预测,程序注释详细方便阅读,可替换自己的数据做预测,预测结果准确。ID:7827682120815077......