python-pytorch基础之cifar10数据集使用图片分类

news2024/9/25 13:18:42

这里写目录标题

  • 总体思路
  • 获取数据集
    • 下载cifar10数据
    • 解压包
    • 文件介绍
    • 加载图片数字化信息
    • 查看数据信息
  • 数据读取
  • 自定义dataset
  • 使用loader加载
  • 建模
  • 训练
  • 测试
    • 建测试数据的loader
    • 测试准确性
    • 测试一张图片
      • 读取一张图片
      • 加载模型
      • 预测图片类型
      • 创建一个预测函数
      • 随便来张马的图片
    • 结果
  • 其他
    • 打开一个图片
      • 基础信息查看
      • 数据转图片

总体思路

生成数据dataset

使用loader加载dataset

建模

训练

测试

参考:

https://blog.csdn.net/HcViking/article/details/126688941

import numpy

获取数据集

下载cifar10数据

下载地址

http://www.cs.toronto.edu/~kriz/cifar.html

# !wget http://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz

解压包

# !tar -zxvf cifar-10-python.tar.gz

文件介绍

总共有六个文件

五个cifar-10-batches-py/data_batch_1 2 3 4 5

一个测试集cifar-10-batches-py/test_batch

分类分别是[“airplane”,“automobile”,“bird”,“cat”,“deer”,“dog”,“frog”,“horse”,“ship”,“truck”]
在这里插入图片描述

加载图片数字化信息

def unpickle(file):
    import pickle
    with open(file, 'rb') as fo:
        dict = pickle.load(fo, encoding='bytes')
    return dict

dic=unpickle("./cifar-10-batches-py/data_batch_1")

查看数据信息

dic.keys()
dict_keys([b'batch_label', b'labels', b'data', b'filenames'])
dic.get(b'filenames')[0:10]
[b'leptodactylus_pentadactylus_s_000004.png',
 b'camion_s_000148.png',
 b'tipper_truck_s_001250.png',
 b'american_elk_s_001521.png',
 b'station_wagon_s_000293.png',
 b'coupe_s_001735.png',
 b'cassowary_s_001300.png',
 b'cow_pony_s_001168.png',
 b'sea_boat_s_001584.png',
 b'tabby_s_001355.png']
len(dic.get(b'filenames'))
10000
X = dic[ b'data']
Y = dic[b'labels']
X[5],type(X),X[5].shape
(array([159, 150, 153, ...,  14,  17,  19], dtype=uint8),
 numpy.ndarray,
 (3072,))
## 其他信息-concatenate
nparray=numpy.array([[1,2,3,4,5],[1,4,5,6,7]])
print(nparray)

xx=numpy.concatenate(nparray)
xx
[[1 2 3 4 5]
 [1 4 5 6 7]]





array([1, 2, 3, 4, 5, 1, 4, 5, 6, 7])

数据读取

import os
import numpy as np
import pickle


#读一个批次
def load_cifar_batch(filename):
    with open(filename,'rb') as f:
        data_dict=pickle.load(f,encoding='bytes')
        images =data_dict[b'data']
        labels=data_dict[b'labels']
        
        print("data shape is {0} and type is {1}".format(images.shape,type(images)))
        print("labels shape is {0} and type is {1}".format(len(labels),type(labels)))
  
        # 把3072列分成3个32*32的数据
        images=images.reshape(10000,3,32,32)
        print("after data reshape is {0} and type is {1}".format(images.shape

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/822487.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java实现钉钉群机器人@机器人获取信息后,机器人回复

1.需求 鉴于需要使用钉钉群机器人回复,人们提出的问题,需要识别提出的问题中的关键词,后端进行处理实现对应的业务逻辑 2.实现方式 用户群机器人,附带提出的问题,后端接收消息后识别消息内容,读取到关键…

亚马逊、虾皮、Lazada、速卖通、阿里国际等跨境电商平台怎么获取优质评价?

在跨境电商平台上,产品的评价直接影响卖家账户的评定因素,同时也影响产品页面的曝光量和流量,从而对产品销量产生影响,因此,产品评价的重要性不言而喻,除了产品的图片、描述、详情、广告和站外推广&#xf…

Java throw和throws 关键字

在Java中,异常可以分为两种类型: 未检查的异常:它们不是在编译时而是在运行时被检查,例如:ArithmeticException,NullPointerException,ArrayIndexOutOfBoundsException,Error类下的异…

[Docker实现测试部署CI/CD----相关服务器的安装配置(2)]

目录 6、Jenkins安装配置安装jdk安装maven拉取镜像启动jenkins修改数据卷权限浏览器访问安装插件配置jenkins移动JDK和Maven配置JDK和Maven 6、Jenkins安装配置 Jenkins 是一个开源软件项目,是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作&…

MySQL 的解析器以及 MySQL8.0 做出的改进 | StoneDB技术分享 #2

设计:小艾 审核:丁奇 编辑:宇亭 作者:柳湛宇(花名:乌淄) 浙江大学-软件工程-在读硕士、StoneDB 内核研发实习生 一、MySQL 的解析器 MySQL 所使用的解析器(即 Lexer 和 Parser …

⛳ Java多线程 一,线程基础

线程基础 ⛳ Java多线程 一,线程基础🐾 一,线程基础💭 1.1,什么是程序,进程,线程🏭 1.2,什么是并行和并发👣 1.3,线程使用的场景🎨 1.…

Nginx 15分钟入门

1、反向代理和负载均衡 Nginx 反向代理 负载均衡 网站初期用户量较少的时候,一台服务器就够用,但是当大量用户注册,那么显然一台机器就不够了。如下图,我们把同一个项目部署在3台服务器上。那么问题又来了,用户A的请…

连锁门店新零售管理系统服务商,提供新零售商城一体化解决方案|亿发

新零售时代,客户需求和购物方式正在发生翻天覆地的变化,数字化运营服务成为连锁门店增强竞争力的有效工具。那么,我们该如何借助数字化力量,升级连锁门店的新零售运营服务,迎接未来的商业挑战呢?一、智慧新…

emWin - BMP图片显示

BmpCvt.exe 用途 利用BMP图片,进行GUI显示;ICON等图标都是小BMP图片,核心是将BMP图片,转成emWin支持的方式,最终显示到TFT屏上 使用BmpCvt.exe工具,将各个图片转成相应的C文件. emWin有关的工具&#xff…

P4780 Phi的反函数

题目 思路 φ(x)n 当指数均为1时n最小 证明&#xff1a;容斥原理 代码 #include<bits/stdc.h> using namespace std; #define int long long const int maxn1e9; int ansINT_MAX,n; bool f; map<int,bool> mp; bool is_prime(int n){if(n<1) return false;fo…

Web功能测试之表单、搜索测试

初入职场接触功能测试老是碰到以下情况不知道怎么写测试用例&#xff1a; 一个界面很多搜索条件怎么写用例&#xff1f; 下拉框测试如何考虑测试点&#xff1f; 上传要考虑哪些验证点&#xff1f;...... 所以这篇主要是整理关于web测试之表单、搜索测试的相关要点。 一、表…

个性定义轻松掌控,更适合PC玩家的游戏鼠标,雷柏VT350S体验

喜欢玩PC游戏的玩家都知道&#xff0c;一款好的鼠标可以在游戏中更加游刃有余&#xff0c;甚至扭转乾坤。但是&#xff0c;有线鼠标总是让人觉得不够灵活&#xff0c;无线鼠标又担心延迟和续航。那么&#xff0c;有没有一款无线鼠标既能满足游戏需求&#xff0c;操作又能随心所…

话费充值系话费直充系统源码支付快充慢充系统运营商接口

话费充值系话费直充系统源码支付快充慢充系统运营商接口

小程序学习(五):WXSS模板语法

1.什么是WXSS WXSS是一套样式语言,用于美化WXML的组件样式,类似于网页开发中的CSS 2.WXSS和CSS的关系 WXSS模板样式-rpx 3.什么是rpx尺寸单位 4.rpx的实现原理 5.rpx与px之间的单位换算* WXSS模板样式-样式导入 6.什么是样式导入 使用WXSS提供的import语法,可以导入外联的样式…

Spring-BeanFactory

Spring Spring是整个Java体系最核心的框架&#xff0c;没有之一。 核心类图结构 ApplicationContext ApplicationEventPublisher&#xff1a;提供了一种机制&#xff0c;用于通知应用程序中感兴趣的部分有关其执行过程中发生的特定事件。ListableBeanFactory&#xff1a;是S…

P3855 [TJOI2008] Binary Land(BFS)(内附封面)

[TJOI2008] Binary Land 题目背景 Binary Land是一款任天堂红白机上的经典游戏&#xff0c;讲述的是两只相爱的企鹅Gurin和Malon的故事。两只企鹅在一个封闭的迷宫中&#xff0c;你可以控制他们向上下左右四个方向移动。但是他们的移动有一个奇怪的规则&#xff0c;即如果你按…

cloudstack之basic network

本章则主要尝试basic network模式的使用。 基础环境搭建见cloudstack测试环境搭建 1、概念介绍 cloudstack的网络模式主要分为两种&#xff1a; basic network&#xff1a;一个zone中仅有一个guest network来承载客户虚拟机的流量&#xff0c;可以理解为一个简单的二层网络。…

【EI/SCOPUS征稿】2023年算法、图像处理与机器视觉国际学术会议(AIPMV2023)

2023年算法、图像处理与机器视觉国际学术会议&#xff08;AIPMV2023&#xff09; 2023 International Conference on Algorithm, Image Processing and Machine Vision&#xff08;AIPMV2023&#xff09; 2023年算法、图像处理与机器视觉国际学术会议&#xff08;AIPMV2023&am…

Django学习记录:使用ORM操作MySQL数据库并完成数据的增删改查

Django学习记录&#xff1a;使用ORM操作MySQL数据库并完成数据的增删改查 数据库操作 MySQL数据库pymysql Django开发操作数据库更简单&#xff0c;内部提供了ORM框架。 安装第三方模块 pip install mysqlclientORM可以做的事&#xff1a; 1、创建、修改、删除数据库中的…