mnist torch加载fashion_Pytorch加载并可视化FashionMNIST指定层(Udacity)

加载并可视化FashionMNIST

在这个notebook中,我们要加载并查看 Fashion-MNIST 数据库中的图像。

任何分类问题的第一步,都是查看你正在使用的数据集。这样你可以了解有关图像和标签格式的一些详细信息,以及对如何定义网络以识别此类图像集中的模式的一些见解。

PyTorch有一些你可以使用的内置数据集,而FashionMNIST就是其中之一,它已经下载到了这个notebook中的data/目录中,所以我们要做的就是使用FashionMNIST数据集类加载这些图像,并使用DataLoader批量加载数据。

加载数据

数据集类和张量

torch.utils.data.Dataset是一个表示数据集的抽象类,而 FashionMNIST类是这个数据集类的扩展,它可以让我们加载批量的图像/标签数据,并且统一地将变换应用于我们的数据,例如将所有图像转换为用于训练神经网络的张量。张量类似于numpy数组,但也可以在GPU上使用,用来加速计算 。

下面,让我们看一看如何构建训练数据集。

# our basic libraries

import torch

import torchvision

# data loading and transforming

from torchvision.datasets import FashionMNIST

from torch.utils.data import DataLoader

from torchvision import transforms

# The output of torchvision datasets are PILImage images of range [0, 1].

# We transform them to Tensors for input into a CNN

## Define a transform to read the data in as a tensor

data_transform = transforms.ToTensor()

# choose the training and test datasets

train_data = FashionMNIST(root='./data', train=True,

download=False, transform=data_transform)

# Print out some stats about the training data

print('Train data, number of images: ', len(train_data))

Train data, number of images: 60000

数据迭代与批处理

接下来,我们将要使用的是torch.utils.data.DataLoader,它是一个可以批量处理数据并置乱数据的迭代器。

在下一个单元格中,我们将数据置乱,并以大小为20的批量加载图像/标签数据。

# prepare data loaders, set the batch_size

## TODO: you can try changing the batch_size to be larger or smaller

## when you get to training your network, see how batch_size affects the loss

batch_size = 20

train_loader = DataLoader(train_data, batch_size=batch_size, shuffle=True)

# specify the image classes

classes = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',

'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']

将一些训练数据可视化

这个单元格会遍历该训练数据集,并使用dataiter.next()加载一个随机批次的图像/标签数据。然后,它会在2 x batch_size/2网格中将这批图像和标签可视化。

import numpy as np

import matplotlib.pyplot as plt

%matplotlib inline

# obtain one batch of training images

dataiter = iter(train_loader)

images, labels = dataiter.next()

images = images.numpy()

# plot the images in the batch, along with the corresponding labels

fig = plt.figure(figsize=(25, 4))

for idx in np.arange(batch_size):

ax = fig.add_subplot(2, batch_size/2, idx+1, xticks=[], yticks=[])

ax.imshow(np.squeeze(images[idx]), cmap='gray')

ax.set_title(classes[labels[idx]])

更详细地查看图像

该数据集中的每个图像都是28x28像素且已归一化的灰度图像。

关于归一化的说明

归一化可以确保在训练CNN的过程中,先后经历前馈与反向传播步骤时,每个图像特征都将落入类似的值范围内,而不是过度激活该网络中的特定层。在前馈步骤期间,该神经网络会接收输入图像并将每个输入像素乘以一些卷积滤波器权重并加上偏差,然后应用一些激活和池化函数。如果没有归一化,反向传播步骤中的计算梯度将会非常大,并且会导致我们的损失增加而不是收敛。

# select an image by index

idx = 2

img = np.squeeze(images[idx])

# display the pixel values in that image

fig = plt.figure(figsize = (12,12))

ax = fig.add_subplot(111)

ax.imshow(img, cmap='gray')

width, height = img.shape

thresh = img.max()/2.5

for x in range(width):

for y in range(height):

val = round(img[x][y],2) if img[x][y] !=0 else 0

ax.annotate(str(val), xy=(y,x),

horizontalalignment='center',

verticalalignment='center',

color='white' if img[x][y]

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

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

相关文章

linux 查看socket fd,linux socket中select()函数以及FD_ZERO FD_SET FD_CLR FD_ISSET

linux socket非阻塞编程时常见到如下的code:socket s;.....fd_set set;.....struct timeval tv;while(1){FD_ZERO(&set);//将你的套节字集合清空FD_SET(s, &set);//加入你感兴趣的套节字到集合,这里是一个读数据的套节字stv.tv_sec 3;tv.tv_usec 0;select(maxf…

pytorch默认初始化_Pytorch 实现权重初始化

pytorch 怎么定义多任务学习中的不同任务的权重pytorch 怎么定义多任务学习中的不同任务的权重 搜索资料 我来答 分享 微信扫一扫 新浪微博 QQ空间 举报 浏览15 次 本地图片 图片链接 代码 提交回答pytorch训练好的模型能用在keras或tensorflow吗我最近在找一个resnet18的权重…

c语言程序编写一朵花,一朵花(中英双语)

一朵花A Flower作者|白鹤清泉(Baihe Qingquan)英译|周柯楠(Zhou Kenan)轻轻地走近你的世界Gently I approach your world默默地与你对视Looking you in the eye silently我用眼睛嘴唇与你贴近I keep close to you with my eyes and lips只为听到你芬芳的…

k3 审核流程图_3-金蝶K3操作流程图详解

一、流程图符号说明:______________________________________________ 3二、K/3系统基础操作流程图:___________________________________ 4A、“中间层—账套管理”_________________________________________________ 4B:系统基础资料_____…

c语言链表贪吃蛇教程,编《贪吃蛇》最简单的算法,链表法

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include#include#include#include#include#define ESC 0x011b#define UP 0x4800#define DOWN 0x5000#define LEFT 0x4b00#define RIGHT 0x4d00struct rode{int x;int y;struct rode *next;};struct rode *head,food;void initgra(…

硬解析优化_72最近一次现场生产系统优化的成果与开发建议

上周给南京某客户一个重要业务系统的数据库做优化,能实施的马上做了实施,优化前后性能对比非常明显,系统最为严重的IO负载过重问题基本得到解决:优化前一天的物理读是48亿次,优化后是15亿次,效果那是刚刚的…

c语言中的运算符按位或,|按位或运算符

|按位或运算符,同样,它也与我们前面学过的逻辑或运算符类似,只有一个竖线表示,作用位,两个对应的二进制位有一个为1结果即为1。如8|7的运算过程可以如下表示:8 0000 0000 0000 0000 0000 0000 0000 1000…

为什么仿宋字体打印出楷体_win7缺少仿宋_GB2312和楷体_GB2312字体,造成word字体显示不正常...

领导反映说自己电脑上word显示的字体和打印机打出来的字体不一样。且别人发过来的word文件格式会不一样,本来只有2页的,到她那里会变成3页。她说会不会是字体有问题。我说要看一下。我当时想也可能是word设置有问题。后来上网查了下,说win7系…

android动态开发,android开发实现动态壁纸

释放双眼,带上耳机,听听看~!代码中有用到两个接口IWallpaperService mService;IWallpaperEngine mEngine;我们可以看到该目录下面有三个aidl接口,分别是复制代码 代码如下:interface IWallpaperConnection {void attachEngine(IWa…

build 之前执行task_浅谈VS编译自定义编译任务—MSBuild Task(csproject)-阿里云开发者社区...

在上一篇浅谈.NET编译时注入(C#-->IL)中我们简单的反编译查看了几种c#语法糖和PostSharp在编译成IL时为我做的MSIL注入。紧接着在这节,要来看的就是MSBuild Task。在我们的代码预编译过程中我们可以创建我们自己的任务Task。下面我们就开始做一个简单的Task。1&a…

xml层级工具_.NET的类型层次查看工具,ClassHierarchyViewer,0.3.0.1

上周为了快速了解一个.NET的库而需要查看其类型层次。假如要在文章中表示一个类型层次,还是用文本比较舒服,截图始终是不方便。Reflector虽然能够显示类型层次,但我无法方便的把显示出来的类型层次转换为文本形式。而且,Reflector…

XM7 FOR ANDROID,视频剪辑制作app-视频剪辑制作xm8.0安卓版-蜻蜓手游网

视频剪辑制作是一款很好用的手机视频编辑软件,在这里你可以进行视频剪辑、制作字幕、背景音乐制作等,让你可以轻松的制作视频,需要视频剪辑制作的就来蜻蜓手游网下载吧!软件功能【背景配乐】给视频添加背景音乐,支持MP…

css宋体代码_css中宋体怎么设置?

CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。下面我们来看一下css设置宋体的方法。css设置宋体代码如下:div里面设置字体宋体样式全局设置字体样式font-family 规定元…

android极光推送声音,android 极光推送 声音与振动 的关闭和开启

前言:最近刚好在写一些推送方面的东西,又是新手,不断在网上找资料,很少,不过还是找到了一些,反正百度我是再也不想百度了,谷歌一下子就能找到想要的。废话不多说。1.主要方法就是如下一个函数pr…

linux禁止客户端上传文件_Linux 几种上传文件到linux服务的方法

Linux下几种文件传输命令 sz rz sftp scp最近在部署系统时接触了一些文件传输命令,分别做一下简单记录:1.sftpSecure Ftp 是一个基于SSH安全协议的文件传输管理工具。由于它是基于SSH的,会在传输过程中对用户的密码、数据等敏感信息进行加密&…

韩泰机器人_[视频]Hankook Mirae展示四米高的Method-2载人两足机器人

Method-2 身高 13 英尺(约合 4 米),重 1.5 吨。当它“走路”的时候,地面都会跟着一起震动。Hankook Mirae Technology 董事长 Yang Jin-Ho 表示:“Method-2 是全球首款载人双足机器人,它能够在人类难以企及的极端危险地带开展工作…

r语言的MASS包干什么的_R语言综述的包

Multivariate Statistics(多元统计)基本的R包已经实现了传统多元统计的很多功能,然而CRNA的许多其它包提供了更深入的多元统计方法,下面做个简要的综述。多元统计的特殊应用在CRNA的其它任务列表(taskview)里也会提及,如:排序(ord…

eps倾斜摄影矢量化采集毕业设计_eps倾斜摄影矢量化dlg采集

1、倾斜摄影测量倾斜摄影测量和我们传统影像的区别:从数据采集的方式来看,传统影像是通过飞机上搭载的航摄仪对地面连续摄取相片,而后经过一系列的内业处理得到的影像数据,获取的成果只有地物俯视角度信息,也就是视角垂…

在html中怎么写背景色渐变,css3背景色渐变

css3背景色渐变难是不难,就是麻烦。不同浏览器用法不同,还有个爱掺和的ie。。。一. Webkit浏览器(1) 第一种写法:background:-webkit-gradient(linear ,10% 10%,100% 100%,color-stop(0.14,rgb(255,0,0)),color-stop(0…

混凝土墙开洞_易县混凝土剪力墙切割常见问题

易县混凝土剪力墙切割常见问题北京专业切割 承接水泥地面切割路面切割 混凝土地面切割 地面切割开线槽 楼板切割 墙体切割 柱子切割 沥青地面切割 洋灰地面切割 切割开线槽 。是一个以建筑液压钳拆除结构加固和切割拆除、水钻钻孔的综合性公司。加固设计、混凝土外部粘钢加固、…