3.5 图像分类数据集

 1. 下载数据并将数据读到内存

mnist数据集是图像分类中广泛使用的数据集之一,但作为基准数据集过于简单。 我们将使用类似但更复杂的Fashion-MNIST数据集。

mnist_train是一个torchvision.datasets.mnist.FashionMNIST类型(数据集类型?)的对象:

它是一个有60000张图片及其标签的数据集:

它的每一行是图片及其标签的整数值表示的有两个元素的元组:

2. 将数据集中的图片画出来

我们将这个数据集画出来:

 注意红框部分,是使用data.DataLoader(),以数据集和batch_size为参数来读取小批量的数据。在这里强调,data.DataLoader可以以小批量batch_size读取数据集,它的参数类型是数据集类型。

 

3. 读取小批量数据,并测试以小批量读完一边训练集所需的时间

注意在使用data.DataLoader()读取小批量数据时,可以加入参数num_workers=?来指定以几个进程来读取数据。

 

4. 封装读取数据集函数,方便以后使用

 注意这里面有一个resize,这意思是,我们以后的模型可能会需要不同尺寸的图片输入,可以用resize来改变尺寸。

注意:这个函数load_data_fashion_mnist()返回的是代表训练集和测试集的dataLoader,可以用train_iter以及test_iter来接住它。

 

本文转载于网络 如有侵权请联系删除

相关文章

  • Dubbo协议帧概述

    在TCP协议栈中,每层协议都有自己的协议报文格式,比如TCP协议是网络七层模型中的传输层,有TCP协议报文格式;在TCP上层是应用层,应用层协议常见的有http协议等,Dubbo协议作为建立在TCP协议之上的一种应用层协议,自然也有自己的协议包格式,Dubbo协议也是参考TCP协议栈中的协议,协议内容由header和body两部分组成,其结构如下图13.1.1:image.png图13.1.1其中协议头header格式如下图13.1.2:image.png图13.1.2如上图图13.1.2可知header总包含了16个字节的数据其中前两个字节为魔数,类似Class类文件里面的魔数,这里用来标识一个帧的开始,固定为0xdabb,其中第一个字节固定为0xda,第二个字节固定为0xbb.后面紧这的一个字节是请求类型和序列化标记id的组合结果:requstflag|serializationId。其中高四位标示请求类型,枚举值如下:protectedstaticfinalbyteFLAG_REQUEST=(byte)0x80;//1000 protectedstaticfinalbyteFLA

  • ELK学习笔记之Elasticsearch删除指定日期的数据(脚本+定时任务)

    0x00概述目前使用的ES版本为6.3.x,经过长时间的积累,ES内数据越来越多,需要删除指定日志之前的日志。例如只要求保留60天的日志,那么就要删除60天之前的所有索引和日志。0x01ES删除XX天之前的索引和数据#!/bin/sh #ES版本为6.3.x functiondelIndex() { #此处输入要删除的索引名字,例如要删除filebeat-xxx索引的日志,此处要输入‘filebeat-’ index_name=$1 #此处输入要数据保留的天数,例如要保留最近60天的数据,此处要输入60 savedays=$2 #$3变量也是天数,例如你要保留60天的数据,此处输入90,就是会删除第60到90天这段时间的数据,60<=90 while[$savedays-le$3] do #此处是es内索引的日期格式,有的是2019.11.26,有的是2019-11-26 format_day='%Y.%m.%d' #format_day='%Y-%m-%d' #此处通过date命令组成索引的时间戳部分,例如2019.11.26或者2

  • JAVA中的数组

    0x01什么叫做数组?数组:是存储同一种数据类型的集合容器0x02数组的初始化方式1动态初始化 方法:数据类型[]数组名=new数据类型[数组长度] 例如:int[]arr=newint[100];复制上面的这条语句定义了一个长度为100的整型数组。当然我们也可以采用像在c语言中定义数组的方式,不过在java中并不常用,在此不再介绍。 2静态初始化 方法:数据类型[]数组名={数据元素} 例如:int[]arr={1,2,3,4...}复制注:如果数组在一开始就确定了大小,那么这时候建议使用静态初始化。0x03匿名数组直接进行初始化:newint[]{1,2,3,4,5};复制这时候可以直接用一开始定义的arr数组指向arr=newint[]{1,2,3,4.....}复制0x04数组的复制我们可以设置一个数组int[]arr=newint[100]; int[]arr1=arr;复制此时arr中的元素全都是0,实际上arr1与arr指向的是痛一个数组,如果修改arr[0]时,arr[0]与arr1[0]的值是相等的。 那么应该如何做到真正的复制一个数组呢? 这时候就需要用到Array

  • 《剑指offer》面试题16 反转链表 Java版

    (输入链表的头节点,反转链表) 书中方法:对于一个链表,我们只能从头往后遍历,如果要反转,我们需要更改当前节点的next域指向前一个节点,此时链表断开,为了能继续修改下一个节点的next域,我们还要维护下一个节点。 publicListNodereverse(ListNodefirst){ if(first==null)returnfirst; ListNodelast=null; ListNodenow=first; ListNodenext=first.next; while(now!=null){ now.next=last; last=now; now=next; if(now!=null){ next=now.next; } } returnlast; } 复制 方法二:书后面还提到了递归的方法。自己写的逻辑比较不清楚,在网上找了一个版本。这个方法的思路是:递归返回的是当前节点右侧已经反转好的链表的头节点,对于当前的节点,将它连接到已经reverse好的链表的末尾,返回值是添加了该节点的新链表头。先

  • About

    阿巴阿巴阿巴

  • linux如何使用rar

    说明:windows下rar压缩的文件放到centos7上解压的话,centos7上安装的版本需要大于或是等于windows下安装的版本   1.下载wget--no-check-certificatehttps://www.rarlab.com/rar/rarlinux-x64-612.tar.gz   2.安装[root@localhostsoft]#tar-zxvfrarlinux-x64-612.tar.gz[root@localhostrar]#cdrar[root@localhostrar]#makemkdir-p/usr/local/binmkdir-p/usr/local/libcprarunrar/usr/local/bincprarfiles.lst/etccpdefault.sfx/usr/local/lib 3.错误解决办法-bash:/usr/local/bin/rar:/lib/ld-linux.so.2:badELFinterpreter:Nosuchfileordirectory是因为64位系统中安装了32位程序解决方法:yumins

  • 解决 /var/run/nginx.pid failed

    nginx:[error]open()"/var/run/nginx.pid"failed(2:Nosuchfileordirectory)[root@TESTnginx]#sudonginx-c/etc/nginx/nginx.conf[root@TESTnginx]#nginx-sreload

  • JS案例:Observer Pattern(观察者模式)和Publisher-Subscriber Pattern(发布者/订阅者模式)

    发布/订阅模式和观察者模式一样吗? 在许多地方我们都能见到基于这二者或者说基于某种设计模式的框架,函数或插件 在浏览器中使用addEventListener(type,fn)对dom元素进行事件委托,事件监听用户的异步操作Android中也有一个事件发布/订阅的轻量级框架:EventBus,原理与web相似Socket.io的许多方法也是基于此类模式,监听与触发事件,批量广播等在Node中同样也有一个events事件触发器解决异步操作的同步响应 那么其二者有什么区别吗,下面两张图可以简单描述他们的过程(发布者/订阅者模式我直接用事件的侦听(addeventlistener)与事件的派遣(dispatchevent)来形容帮助理解) ObserverPattern(观察者模式): Subject(主题,或者叫被观察者):当状态发送变化时,需要通知队列中关联对象Observer(观察者):当Subject发送消息时,通过回调获得信息Observer(观察者)将事件(记做fn回调)丢给Subject(被观察者),然后就开始监视着他的一举一动,当Subject(被观察者)的(异步)任务完成后,

  • 生活杂谈 - 个人技术博客的选择: 博客园,掘金,各大平台或者自己建站 ,以及掘金和cnblogs各自的优势

    下面内容是我(忘我思考)回复掘金制作者Growio(知乎Twitter同)的内容 哇塞!字节的运营太勤快了吧!!!先为你点个赞! 知道你是Growio,和阴明一起建立掘金的 我也准备在Github,Bilibili,jjn,cnblogs一直创作下去了. 所以针对你们和cnblogs的优势,说3点: 掘金和cnblogs相对于其他优势 专业的技术社区,不像V公号,简书,知乎啥都有 专业用户多 掘金相对于cnblogs优势 年轻,技术新 有cnblogs没有的东西:每日签到,小册 字节跳动收购的产品,字节跳动有优秀的UI设计师,UI更符合年轻人喜好,不像cnblogs只是一个功能性UI 字节跳动有丰富资源:周边礼品,开源工具(如Bytemd,掘金的编辑器),不像cnblogs用的是简单的textarea...,还有一群像你一样的强大运营(如掘金酱,优弧...) 字节跳动有钱,支持掘金一定时间的不赚钱投入成本(其实掘金目前显然不怎么赚钱,但将来一定能找到商业模式,比如A.转型IT教育,像极客时间,Gitchat和开课吧,或者B.转型泛IT新闻社区,像CSDN和少数派,或者C

  • Beautiful and Powerful Correlation Tables in R

    Another correlation function?! Yes,the correlation functionfromthe psycho package. devtools::install_github("neuropsychology/psycho.R")#Installthenewestversion library(psycho) library(tidyverse) cor<-psycho::affective%>% correlation()复制 Thisfunctionautomaticallyselectnumericvariablesandrunacorrelationanalysis.Itreturnsapsychobject. Atable Wecanthenextracta formattedtable thatcanbesavedandpastedintoreportsandmanuscriptsbyusingthe summary&nb

  • wcf问题集锦

    1.处理程序“svc-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler” HTTP错误404.3-NotFound 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加MIME映射。 解决办法:以管理员运行命令:C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe -i  HTTP错误500.21-InternalServerError  处理程序“svc-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler” 解决办法: 原因:在安装Frameworkv4.0之后,再启用IIS,导致Framework没有完全安装 解决:开始->所有程序->附件->鼠标右键点击“命令提示符”->以管理员身份运行->%windir%\Microsoft.

  • Java基础学习总结一(Java语言发展历史、JDK下载安装以及配置环境变量)

    最近一段时间计划复习一下java基础知识,使用的视频课程是尚学堂高淇老师的,上课过程中的心得体会直接总结一下,方便以后复习。 一:计算机语言的发展 1:机器语言,最原始的语言,主要有“01”构成,最早的计算机使用电子管,01主要有高低电平控制。2:汇编语言,借助一些特殊符号,相比机器语言,更容易为人所理解,但是仍然不够人性化。3:高级语言,分为面向过程语言,例如C语言(贝尔实验室发明),和面向对象语言,例如C++、java、C#等。 二:java语言的发展 1:java语言是有sun公司发明的,它是一种面向对象的语言,是对C++语言作为删减,java的核心优势是跨平台性,可以一次编译,到处运行。主要是因为JVMjava虚拟机,java针对不同的操作系统(windows、linux或者max等)都有各自的JVM,这样编译好的程序可以在任何平台运行。 2:java的版本javase:java标准版,主要应用在个人计算机javaee:java企业版,主要应用在服务器端的开发javame:java小型版,主要用于个人消费类产品的开发 三:jdk、jre和jvm的概念以及区别 1:jdk、jre

  • MaterialButton 使用

    导入依赖,就可以使用了:implementation'com.google.android.material:material:1.3.0' 在1.2版本以前,MaterialButton只能通过app:backgroundTint属性设置背景色,该属性接收colorstatelist。不能通过android:background设置自定义drawable。1.2版本后,官方已修复此问题。如果未设置自定义背景,则MaterialShapeDrawable仍将用作默认背景。也就是说,如果按钮背景是纯色,可以通过app:backgroundTint指定;如果按钮背景是渐变色,则需要自己定义drawable,然后通过android:background设置。注意:如果要使用android:background设置背景,则需要将backgroundTint设置为@empty,否则background不会生效。既然已经自定义drawable,就没必要使用MaterialButton,直接用普通的Button甚至用TextView就好了。 Theme主题,可以在不同作用域下配置。 以上来

  • springBoot文档地址

    文档: https://www.gitbook.com/book/qbgbook/spring-boot-reference-guide-zh/details 配置: http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html   maven配置地址: http://search.maven.org/

  • mysql 知识

    事务四大特性(ACID)原子性、一致性、隔离性、持久性? 事务的并发?事务隔离级别,每个级别会引发什么问题,MySQL默认是哪个级别? MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)的区别? MySQL的MyISAM与InnoDB两种存储引擎在,事务、锁级别,各自的适用场景? 查询语句不同元素(where、jion、limit、groupby、having等等)执行先后顺序? 什么是临时表,临时表什么时候删除? MySQLB+Tree索引和Hash索引的区别? sql查询语句确定创建哪种类型的索引?如何优化查询? 聚集索引和非聚集索引区别? 有哪些锁(乐观锁悲观锁),select时怎么加排它锁? 非关系型数据库和关系型数据库区别,优势比较? 数据库三范式,根据某个场景设计数据表? 数据库的读写分离、主从复制,主从复制分析的7个问题? 使用explain优化sql和索引? MySQL慢查询怎么解决? 什么是内连接、外连接、交叉连接、笛卡尔积等? mysql都有什么锁,死锁判定原理和具体场景,死锁怎么解决? varchar和char的使用场景? mysql高并发

  • js 判断 ip

    【使用新浪ip接口】 多地域测试方法:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=111.202.103.204     引用新浪ip接口: <scriptsrc="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js"charset="GB2312"></script>  默认是gbk格式的   使用方法:  <scriptsrc="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js"charset="GB2312"></script>  默认是gbk格式的 <scripttype=text/javascript>  alert("你的IP是:"+remote_ip_info.provinc

  • JS监听回车事件

    JS监听某个输入框 1//回车事件绑定 2$('#search_input').bind('keyup',function(event){ 3if(event.keyCode=="13"){ 4//回车执行查询 5$('#search_button').click(); 6} 7});复制   JS监听某个DIV区域 1$("#queryTable").bind("keydown",function(e){ 2//兼容FF和IE和Opera 3vartheEvent=e||window.event; 4varcode=theEvent.keyCode||theEvent.which||theEvent.charCode; 5if(code==13){ 6//回车执行查询 7$("#queryButton").click(); 8} 9});复制    

  • 黄金梅丽号第二次讨论会议

    黄金梅丽号第二次讨论会议 时间:19年11月11日 地点:西街301 项目进度:讨论及制作项目计划书 项目计划书链接?:https://www.cnblogs.com/huangjinmeilihao/p/11836675.html 完成功能点:暂未完成任何功能点 主题:讨论,制作项目计划书 主持人:孙帅群 会议记录员:顾雪微 应到:10人 实到:9人(病假一人) 主要内容:1)讨论该软件所需完成功能,制作时间,计划过程及书写规范。       2)研究讨论项目计划书的大致内容,充分合理利用分配时间,完善项目计划书的内容。 会议结果:将各位组员讨论的观点整理疏通,形成笔记。            将项目计划充实项目计划表。 会议场景:    

  • Java可重入锁AQS 和 CAS原理

    https://www.cnblogs.com/xzn-smy/p/9172555.html     CAS:比较替换,通过unsafe类,来实现乐观锁,提高性能,java1.5以后atomic包下类,主要实现   AQS:抽象队列同步器--通过unsafe类+自有队列FIFO ---java1.5以后Locks包下锁机制的,主要实现

  • 用cocos2d-html5做的消除类游戏《英雄爱消除》(2)——Block设计实现

    Block可以说是这个游戏的核心类,它除了包含自身的一些属性和方法外还添加了对触摸事件的响应。 我们先来看下源码吧 /** *Powerbyhtml5中文网(html5china.com) *author:jackyWHJ */ varBlock=cc.Sprite.extend({ id:0, name:"", active:true, pointX:0, pointY:0, beginPoint:null, flash:false, ctor:function(arg){ this._super(); if(!arg)return; this.initWithSpriteFrameName(arg); this.name=arg; //cc.registerTargetedDelegate(0,true,this); cc.Director.getInstance().getTouchDispatcher().addTargetedDelegate(this,0,true); }, //销毁隐藏 destroy:function(){ varexplosion=Explosio

  • 怎么删除svn上已上传的文件

    怎么删除svn上已上传的文件 在SVN的服务端中,无法删除文件,只能删除文件夹。 2 那么,我们可以点击任意一个文件,单击右键->TortoiseSVN->版本库浏览器; 3 在弹出的URL界面中,填写正确的需要删除文件的URL路径,然后点击确定 4 找到那个需要删除的文件,点击右键,就会出现删除的按钮了,那么这样就可以删除那个SVN中的单个文件了。       //=======================================================================   总结:  --三种方法:         --如果用的是VisualSVN-Server,可以从服务器项目文件夹中直接删除;         --先在传错传文件的当前目录下点击鼠标右键,选中Tortoise

相关推荐

推荐阅读