附源码|paddle paddle实现猫狗识别

神经网络入门及tensorflow实战 分享一下最近接触到的神经网络的知识:TensorFlow神经网络实战 神经网络 人工智能(大概念) 机器学习+搜索策略 IBM深蓝战胜世界冠军(国际象棋)采用传统的搜索策略 机器学习综合搜索策略或算法领域都会用到 alpha go zero 从0开始 启发式搜索中的思路 打败原来的alpha go 2015年tf开源 2016年alpha go... 阅读详情

本文是基于paddle paddle采用CNN实现猫狗识别案例。


author:小黄
缓慢而坚定的生长


图像分类是根据图像的语义信息将不同类别图像区分开来,是计算机视觉中重要的基本问题

猫狗分类属于图像分类中的粗粒度分类问题

step1.数据准备

#导入需要的包
import paddle as paddle
import paddle.fluid as fluid
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
import os

(1)数据集介绍

我们使用CIFAR10数据集。CIFAR10数据集包含60,000张32x32的彩色图片,10个类别,每个类包含6,000张。其中50,000张图片作为训练集,10000张作为验证集。这次我们只对其中的猫和狗两类进行预测。

(2)train_reader和test_reader

paddle.dataset.cifar.train10()和test10()分别获取cifar训练集和测试集

paddle.reader.shuffle()表示每次缓存BUF_SIZE个数据项,并进行打乱

paddle.batch()表示每BATCH_SIZE组成一个batch

(3)数据集下载

由于本次实践的数据集稍微比较大,以防出现不好下载的问题,为了提高效率,可以用下面的代码进行数据集的下载。

#!mkdir -p /home/aistudio/.cache/paddle/dataset/cifar/

#!wget “http://ai-atest.bj.bcebos.com/cifar-10-python.tar.gz” -O cifar-10-python.tar.gz

#!mv cifar-10-python.tar.gz /home/aistudio/.cache/paddle/dataset/cifar/

BATCH_SIZE = 128
#用于训练的数据提供器
train_reader = paddle.batch(
    paddle.reader.shuffle(paddle.dataset.cifar.train10(), 
                          buf_size=BATCH_SIZE * 100),           
    batch_size=BATCH_SIZE)                                
#用于测试的数据提供器
test_reader = paddle.batch(
    paddle.dataset.cifar.test10(),                            
    batch_size=BATCH_SIZE) 

Step2.网络配置

(1)网络搭建

在CNN模型中,卷积神经网络能够更好的利用图像的结构信息。下面定义了一个较简单的卷积神经网络。显示了其结构:输入的二维图像,先经过两次卷积层到池化层,再经过全连接层,最后使用softmax分类作为输出层。

池化是非线性下采样的一种形式,主要作用是通过减少网络的参数来减小计算量,并且能够在一定程度上控制过拟合。通常在卷积层的后面会加上一个池化层。paddlepaddle池化默认为最大池化。是用不重叠的矩形框将输入层分成不同的区域,对于每个矩形框的数取最大值作为输出

在这里插入图片描述

def convolutional_neural_network(img):
    # 第一个卷积-池化层
    conv_pool_1 = fluid.nets.simple_img_conv_pool(
        input=img,         # 输入图像
        filter_size=5,     # 滤波器的大小
        num_filters=20,    # filter 的数量。它与输出的通道相同
        pool_size=2,       # 池化核大小2*2
        pool_stride=2,     # 池化步长
        act="relu")        # 激活类型
    # 第二个卷积-池化层
    conv_pool_2 = fluid.nets.simple_img_conv_pool(
        input=conv_pool_1,
        filter_size=5,
        num_filters=50,
        pool_size=2,
        pool_stride=2,
        act="relu")
    # 以softmax为激活函数的全连接输出层,10类数据输出10个数字
    prediction = fluid.layers.fc(input=conv_pool_2, size=10, act='softmax')
    return prediction

(2)定义数据

#定义输入数据
data_shape = [3, 32, 32]
images = fluid.layers.data(name='images', shape=data_shape, dtype='float32')
label = fluid.layers.data(name='label', shape=[1], dtype='int64')

(3)获取分类器

# 获取分类器,用cnn进行分类
predict =  convolutional_neural_network(images

(4)定义损失函数和准确率

这次使用的是交叉熵损失函数,该函数在分类任务上比较常用。

定义了一个损失函数之后,还有对它求平均值,因为定义的是一个Batch的损失值。

同时我们还可以定义一个准确率函数,这个可以在我们训练的时候输出分类的准确率。

# 获取损失函数和准确率
cost = fluid.layers.cross_entropy(input=predict, label=label) # 交叉熵
avg_cost = fluid.layers.mean(cost)                            # 计算cost中所有元素的平均值
acc = fluid.layers.accuracy(input=predict, label=label)       #使用输入和标签计算准确率

(5)定义优化方法

这次我们使用的是Adam优化方法,同时指定学习率为0.001

# 定义优化方法
optimizer =fluid.optimizer.Adam(learning_rate=0.001)
optimizer.minimize(avg_cost)
print("完成")

在上述模型配置完毕后,得到两个fluid.Program:fluid.default_startup_program() 与fluid.default_main_program() 配置完毕了。

参数初始化操作会被写入fluid.default_startup_program()

fluid.default_main_program()用于获取默认或全局main program(主程序)。该主程序用于训练和测试模型。fluid.layers 中的所有layer函数可以向 default_main_program 中添加算子和变量。default_main_program 是fluid的许多编程接口(API)的Program参数的缺省值。例如,当用户program没有传入的时候, Executor.run() 会默认执行 default_main_program 。

Step3.模型训练 and Step4.模型评估

(1)创建Executor

首先定义运算场所 fluid.CPUPlace()和 fluid.CUDAPlace(0)分别表示运算场所为CPU和GPU

Executor:接收传入的program,通过run()方法运行program。

place = fluid.CPUPlace()
exe = fluid.Executor(place)
exe.run(fluid.default_startup_program())

(2)定义数据映射器

DataFeeder 负责将reader(读取器)返回的数据转成一种特殊的数据结构,使它们可以输入到 Executor

feeder = fluid.DataFeeder( feed_list=[images, label],place=place)

(3)定义绘制训练过程的损失值和准确率变化趋势的方法draw_train_process

iter=0
iters=[]
train_costs=[]
train_accs=[]
def draw_train_process(iters, train_costs, train_accs):
    title="training costs/training accs"
    plt.title(title, fontsize=24)
    plt.xlabel("iter", fontsize=14)
    plt.ylabel("cost/acc", fontsize=14)
    plt.plot(iters, train_costs, color='red', label='training costs')
    plt.plot(iters, train_accs, color='green', label='training accs')
    plt.legend()
    plt.grid()
    plt.show()

(3)训练并保存模型

Executor接收传入的program,并根据feed map(输入映射表)和fetch_list(结果获取表) 向program中添加feed operators(数据输入算子)和fetch operators(结果获取算子)。 feed map为该program提供输入数据。fetch_list提供program训练结束后用户预期的变量。

每一个Pass训练结束之后,再使用验证集进行验证,并打印出相应的损失值cost和准确率acc。

EPOCH_NUM = 3
model_save_dir = "/home/aistudio/data/catdog.inference.model"

for pass_id in range(EPOCH_NUM):
    # 开始训练
    train_cost = 0
    for batch_id, data in enumerate(train_reader()):                        #遍历train_reader的迭代器,并为数据加上索引batch_id
        train_cost,train_acc = exe.run(program=fluid.default_main_program(),#运行主程序
                             feed=feeder.feed(data),                        #喂入一个batch的数据
                             fetch_list=[avg_cost, acc])                    #fetch均方误差和准确率
        if batch_id % 100 == 0:                                             #每100次batch打印一次训练、进行一次测试
            print('Pass:%d, Batch:%d, Cost:%0.5f, Accuracy:%0.5f' % 
            (pass_id, batch_id, train_cost[0], train_acc[0]))
        iter=iter+BATCH_SIZE
        iters.append(iter)
        train_costs.append(train_cost[0])
        train_accs.append(train_acc[0])
    # 开始测试
    test_costs = []                                                         #测试的损失值
    test_accs = []                                                          #测试的准确率
    for batch_id, data in enumerate(test_reader()):
        test_cost, test_acc = exe.run(program=fluid.default_main_program(), #运行测试程序
                                      feed=feeder.feed(data),               #喂入一个batch的数据
                                      fetch_list=[avg_cost, acc])           #fetch均方误差、准确率
        test_costs.append(test_cost[0])                                     #记录每个batch的误差
        test_accs.append(test_acc[0])                                       #记录每个batch的准确率
    test_cost = (sum(test_costs) / len(test_costs))                         #计算误差平均值(误差和/误差的个数)
    test_acc = (sum(test_accs) / len(test_accs))                            #计算准确率平均值( 准确率的和/准确率的个数)
    print('Test:%d, Cost:%0.5f, ACC:%0.5f' % (pass_id, test_cost, test_acc))
    
    #保存模型
    if not os.path.exists(model_save_dir):
        os.makedirs(model_save_dir)
    fluid.io.save_inference_model(model_save_dir,
                                  ['images'],
                                  [predict],
                                  exe)
print('训练模型保存完成!')
draw_train_process(iters, train_costs,train_accs)

Step5.模型预测

(1)创建预测用的Executor

infer_exe = fluid.Executor(place)
inference_scope = fluid.core.Scope() 

(2)图片预处理

在预测之前,要对图像进行预处理。

首先将图片大小调整为32*32,接着将图像转换成一维向量,最后再对一维向量进行归一化处理。

def load_image(file):
        #打开图片
        im = Image.open(file)
        im = im.convert('RGB')
        #将图片调整为跟训练数据一样的大小  32*32,                   设定ANTIALIAS,即抗锯齿.resize是缩放
        im = im.resize((32, 32), Image.ANTIALIAS)
        #建立图片矩阵 类型为float32
        im = np.array(im).astype(np.float32)
        #矩阵转置 
        im = im.transpose((2, 0, 1))                               
        #将像素值从【0-255】转换为【0-1】
        im = im / 255.0
        #print(im)       
        im = np.expand_dims(im, axis=0)
        # 保持和之前输入image维度一致
        print('im_shape的维度:',im.shape)
        return im

(3)开始预测

通过fluid.io.load_inference_model,预测器会从params_dirname中读取已经训练好的模型,来对从未遇见过的数据进行预测。

with fluid.scope_guard(inference_scope):
    #从指定目录中加载 推理model(inference model)
    [inference_program, # 预测用的program
     feed_target_names, # 是一个str列表,它包含需要在推理 Program 中提供数据的变量的名称。 
     fetch_targets] = fluid.io.load_inference_model(model_save_dir,#fetch_targets:是一个 Variable 列表,从中我们可以得到推断结果。
                                                    infer_exe)     #infer_exe: 运行 inference model的 executor
    
    infer_path='/home/aistudio/data/dog.png'
    img = Image.open(infer_path)
    plt.imshow(img)   
    plt.show()    
    
    img = load_image(infer_path)

    results = infer_exe.run(inference_program,                 #运行预测程序
                            feed={feed_target_names[0]: img},  #喂入要预测的img
                            fetch_list=fetch_targets)          #得到推测结果
    print('results',results)
    label_list = [
        "airplane", "automobile", "bird", "cat", "deer", "dog", "frog", "horse",
        "ship", "truck"
        ]
    print("infer results: %s" % label_list[np.argmax(results[0])])
用CNN实现猫狗识别 猫狗识别项目说明本项目旨在利用PaddlePaddle深度学习框架,结合CIFAR10数据集训练和建立猫狗识别模型,并使用外部图片进行检测。使用的模型为CNN模型。 阅读详情

相关推荐

[华为ensp]双核心的园区网

(给部分只会emm......借鉴的朋友提个醒,在group-member e0/0/2 to e0/0/20是所选,所以到了p l t那会给2-20端口都配置上trunk,别紧张,不是你问题)完成上述配置后,PC1可以ping通HTTP2服务器,Client1可以访问HTTP2服务器的HTTP站点,如果不能就要检查上述是否正确。本次实验主要目的是采用双核心的冗余网络,采用MSTP和VRRP技术,在核心层交换机上配置SC1上配置OSPF协议。SC1交换机上配置VRRP。在SC1上配置DHCP。

2301_78859499的博客 1416

【新手入门】课程6-卷积神经网络实践-猫狗分类

图像分类是根据图像的语义信息将不同类别图像区分开来,是计算机视觉中重要的基本问题 猫狗分类属于图像分类中的粗粒度分类问题 实践总体过程和步骤如下图 首先导入必要的包 paddle.fluid--->PaddlePaddle深度学习框架 os------------->python的模块,可使用该模块对操作系统进行操作 In[1] #导入需要的包 import p...

PaddlePaddle 3792

仿人型机械臂逆运动学避坑指南:当末端三关节平行时如何处理奇异点

本文深入探讨了6R仿人型机械臂在末三轴平行结构下的逆运动学求解策略,重点分析了运动学逆解中的奇异点问题及其处理方法。通过MATLAB实现展示了D-H参数建模、几何解析法求解流程以及奇异点规避策略,为工业机器人开发提供了实用的数值算法方案和工程优化技巧。

sss66的博客 883

深度学习入门实操——tensorflow 搭建神经网络

通过搭建一个简单的3层神经网络,进行tensorflow实践的入门

weixin_51286347的博客 3525

linux下docker 部署onlyoffice社区版

Onlyoffice 是一款功能丰富的在线 Office 工具,类似 WPS 和 微软的 Office 套件。OnlyOffice Workspace 是由 OnlyOffice 推出的基于云计算的企业级在线协作办公平台,由文档服务(Document Server)、控制面板(Control Panel)、社区服务(Community Server)和邮件服务(Mail Server)四个组件构成,提供了文档、项目、成员、邮件等功能模块,支持文档多人协作、历史版本控制等功能,旨在帮助用户提高工作效率和工作质

axiaowua的博客 2382

​基于stm32的智能空气加湿器设计(含源代码和Proteus仿真)

课程设计分享

LoongSTUDIO的博客 2929

python实现BP神经网络的入门级实践

非常适合入门级选手参考应用案例简介代码参考过的文章 应用案例简介 根据这个数据集训练模型,当给出新的数据时通过模型预测是否会在该KTV等待空位去唱歌。 (1)Others(其他地点):附近是否有其他卡拉OK厅; (2)WaitCond(等候条件):供顾客等候的地方是否舒适; (3)Weekend(周末):若是周六或周日,则为真; (4)Consumers(顾客):店中有多少顾客(值为None(没人),Some(一些)或Full(满座)); (5)Price(价格):价格范围(值为Cheep(便宜),Mid

weixin_44992134的博客 1070

Android16 RK3576 Bluetooth source和sink模式切换

摘要:本文介绍了在RK3576平台上实现蓝牙A2DP模式动态切换的修改方案。通过在device配置文件中添加A2DP Sink相关属性,修改Bluetooth模块代码实现:1)在Config.java中增加persist.bluetooth.rka2dpsink属性控制模式切换;2)修改A2dpSinkStreamHandler.java取消音频焦点限制;3)调整btif_a2dp_sink.cc默认授予音频焦点。最终通过设置persist.bluetooth.rka2dpsink属性为true/false

tzj1058756809的博客 862

适合初学者的神经网络理论到实践(5):10分钟从实践了解Python测试入门

Table of Contents - 如何比较运行时某变量大小或类型是否与预期值一致: assert(断言) assert例子: assert练习: - Python单元测试实践 - 如何测试近似相等,非常接近我们就认为是相等(需要用到numpy) 为何要测试:设定预期结果让计算机判断结果是否符合预期。省得组件很多的时候一个一个的检测这些组件是否运...

andiwang4290的博客 250

北斗导航 | raPPPid软件功能模块详解

raPPPid(Rapid Precise Point Positioning with integer ambiguity resolution,快速精密单点定位与整周模糊度解算)是由维也纳工业大学(TU Wien)大地测量与地理信息系开发的MATLAB开源PPP软件包。它是VieVS(Vienna VLBI and Satellite Software,维也纳VLBI与卫星软件)的PPP模块,由Marcus Franz Glaner和Robert Weber主导开发。

尘世冰封的专栏 587

Qt QCustomPlot 图形库详解及使用

QCustomPlot 是一个开源的 Qt C++ 库,专门用于创建数据图表。易于集成到 Qt 项目中。支持多种图表类型,如折线图、散点图、条形图等。提供丰富的交互功能,如缩放、平移、选择和拖动。高度可定制,支持图形的各种样式设置。// 添加第一条曲线i < 101;++i) {// 设置曲线颜色// 添加第二条曲线i < 101;++i) {// 设置曲线颜色// 设置散点样式// 添加图例。

MusicScore的博客 765

卷积神经网络入门实践

卷积神经网络是深度学习中非常重要的模型之一,它被广泛应用于计算机视觉、自然语言处理等领域。下面是卷积神经网络入门实践的基本步骤: 1.准备数据 首先,你需要准备一个数据集,这个数据集应该包含训练数据、验证数据和测试数据。在计算机视觉领域,你通常需要将图片转换成数字矩阵。你可以使用Python中的OpenCV、Pillow等库来完成这项工作。 2.构建卷积神经网络 构建卷积神经网络是关键。你可以使用深度学习框架如TensorFlow、Keras等库来快速搭建卷积神经网络。 一个卷积神经网络通常由卷积

qq_51693822的博客 683

国科大学习资料--计算机视觉(胡占义、董秋雷)--2018-2019第二学期期末试卷

国科大学习资料–计算机视觉(胡占义、董秋雷)–2018-2019第二学期期末试卷 国科大学习资料–计算机视觉(胡占义、董秋雷)–2018-2019第二学期期末试卷 国科大学习资料–计算机视觉(胡占义、董秋雷)–2018-2019第二学期期末试卷 ...

无名何许人的博客 2168

01:神经网络tensorflow入门案例

人工神经网络(ANN)人工神经网络是深度学习的核心,他们用途广泛,功能强大且可扩展,使其非常适合大型和高度复杂的机器学习任务高度复杂的计算可以通过相当简单的神经元网络来执行,生物神经网络(BNN)的架构仍然是活跃的主题人工神经元的逻辑计算—就是人工神经元的计算基本单元单层感知器(TLU)–注意是单层,而不是一个 就是只有一行TLU的人工神经元,这一行可以有多个TLU也可以只有一个TLU,这样都叫做单层 通过上面的小案例我们可以知道,感知器的学习算法非常类似于随机梯度下降,实际上perceptron类等效

qq_63119830的博客 829

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

构建基础神经网络(实践篇)

构建基础神经网络主要分为四个步骤: 定义训练数据 定义神经层 定义模型 进行模型训练 下面请听我一一为您道来: First:定义训练数据,这里采用Numpy随机定义训练数据 import numpy as np x_data = np.linspace(-1, 1, 300)[:, np.newaxis] # 生成 x noise = np.random.normal(0, 0.05, x_data.shape) # 生成 noise y_data = np.square(x_data)

zhanlang619的博客 1637

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

神经网络 之 思考与讨论(1)

引入: training set 的accuracy 和 validation or test set的accuracy 的关系. training set 和 test set的样本是完全不相交的. training set是用来训练我们的网络model的. test set 是作为实际的生产数据来检验模型的, 它是对模型在实际场景中的检验. 两个数据集没有交集, training ac...

vola的专栏 3800

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

机器学习之图像处理——基本概念知识介绍

图像处理的概论 图像分析一般利用数学模型并结合图像处理的技术来分析底层特征和上层结构,到从而提取具有一定智能性的信息,其中对图片内容分析,图片内容识别和检测都离不开图像的分类。 图像分类目标:已有固定的分类标签集合,然后对于输入的图像,从分类标签集合中找出一个分类标签,最后把分类标签分配给该输入图像。 图像处理流程 图像分类 图像数据分析的内容是什么?内容分析,内容识别,检测都离不开图像的分类 分类目标:所谓图像分类问题,就是已有固定的分类标签集合,然后对于输入的图像,从分类标签集合中找出一个分类标签,最后

迷茫与徘徊只会让你陷入绝境,欢迎私信博主,带你开始提升变现价值! 4282

CIFAR10数据下载失败解决办法

将数据集从官网下载下来放在.keras/ datasets目录下是不行的,因为在load_data里面指定了路径来自官网,前不可修改。自定义加载数据集 import numpy as np import os def load_batch(file): import pickle with open(file, 'rb') as fo: d = pickle.load(fo, encoding='bytes') d_decoded = {}

风间琉璃的博客 1918

keras 训练中的Acc由来

What does the train accuracy mean? What are the test samples? site: https://github.com/keras-team/keras/issues/877

wudroid的博客 7408

paddle.reader.shuffle() 修改数据集大小的方法

有时候需要修改数据集大小,使用 paddlepaddle 如何修改呢?paddlepaddle 官方提供的shuffle方法可以做到: paddle.reader.shuffle(reader, buf_size)Parameters:reader (callable) – the original reader whose output will be shuffled.buf_size (in...

七爷OK 2923

图像分类

图像分类 图像分类是根据图像的语义信息将不同类别图像区分开来,是计算机视觉中重要的基本问题,也是目标检测、语义分割、目标跟踪、行为分析等其他高层视觉任务的基础。 传统图像分割一般有以下几个过程: 1.手工提取特征,例如形态特性、颜色特征和纹理特征 2.使用分类器判别物体类别,例如使用SVM分类器 而基于深度学习的图像分类方法,可以通过有监督或无监督的方式学习层次化的特征描述,从而取代了手工设计或选...

mayou32215201的博客 1070

深度学习基础教程-用paddle实现-之词向量

词向量 本文是学习博客,转载自百度paddle框架的学习文档,代码自己敲了一遍,会有一点改动。

weixin_42681868的博客 659

paddle.reader.shuffle()中buf_size的作用

第一遍运行,数据顺序未乱。 顺序还是未乱。猜测buf_size=1表示缓冲区只能存下一行数据或者说是一条记录。一条一条读,顺序乱不了。 buf_size=2,每次可以缓冲2条记录,1、2行随机排列;3、4行随机排列;5、6行随机排列;7、8行随机排列,第9行固定不变。 再验证一次: buf_size=3,一次可以缓冲3条:1、2、3行随机;4、5、6行随机;7、8、9行随机。 再...

我是天才很好 1748

【保姆级教程】猫狗识别不再难!手把手教你用PaddlePaddle构建卷积神经网络

大家好,我是eriktse,最近在学习计算机视觉。对cv稍微有点了解的小伙伴都知道,猫狗识别是一个入门的项目,虽说这是入门级项目,但是要自己写一个神经网络还是没那么简单的。 在这篇文章中,我将从数据处理、网络模型构建、模型训练、模型评估四步来带你亲自动手制作一个准确率达70%以上的可以实现猫狗识别的卷积神经网络。 实验环境 深度学习框架是百度的PaddlePaddle,机器用的是AI Studio平台。 进入AI Studio官网后点击顶部菜单中的项目进入项目界面,再点击创建项目,然后按照下图的设置创建一个

StarryCoding 官方账号 1162

CIFAR-100,CIFAR-10 数据集下载

CIFAR-100,CIFAR-10 数据集下载

qq_45063777的博客 4341

PyTorch+CNN进行猫狗识别项目

数据结构为:big_data├── train│ └── XXX.jpg(每个文件夹含若干张图像)│ └── XXX.jpg(每个文件夹含若干张图像)├── val│ └── XXX.jpg(每个文件夹含若干张图像)└── ─── └── XXX.jpg(每个文件夹含若干张图像)需要对train数据集进行训练,达到给定val数据集中的一张猫 / 狗的图片,识别其是猫还是狗。

王二的博客 1695
上一篇: 附源码|paddle paddle实现手写数字识别
下一篇: 蓝桥杯习题答案汇总
xiao黄
xiao黄 优质创作者: 人工智能技术领域 优质创作者: 人工智能技术领域 领域专家: 数据科学与机器学习技术领域 领域专家: 数据科学与机器学习技术领域
博客等级 码龄8年 1万+粉丝 250原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiao黄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值