MNIST数据集是一个大型的手写体数字数据库,通常用于训练各种图像处理系统,也被广泛用于机器学习领域的训练和测试。MNIST数据库中的图像集是NIST(National Institute of Standards and Technology)的两个数据库的组合:专用数据库1和特殊数据库3。数据集是有250人手写数字组成,50%是高中学生,50%是美国人口普查局。

MNIST数据集分为60,000张的训练数据集合10,000张的测试数据集,每张图像的大小为28x28(像素);每张图像都为灰度图像,位深度为8(灰度图像是0-255)。

一、MNIST的下载

1.手动下载

下载地址:http://yann.lecun.com/exdb/mnist/

MNIST数据集包含4个文件,下载四个压缩文件,解压缩。解压缩后发现这些文件并不是标准的图像格式。这些图像数据都保存在二进制文件中。train文件是训练数据集,t10k是测试数据集,images文件是图像文件,lables文件是对应的标签文件。

train-images-idx3-ubyte.gz: training set images (9912422 bytes)

train-labels-idx1-ubyte.gz: training set labels (28881 bytes)

t10k-images-idx3-ubyte.gz: test set images (1648877 bytes)

t10k-labels-idx1-ubyte.gz: test set labels (4542 bytes)

2.使用tensorflow下载

from tensorflow.examples.tutorials.mnist import input_data

# 下载MNIST数据集

mnist = input_data.read_data_sets('/tmp/', one_hot=True)

# 数字(label)只能是0-9,神经网络使用10个出口节点就可以编码表示0-9;

# /tmp是macOS的临时目录,重启系统数据丢失; Linux的临时目录也是/tmp

二、数据的读取

1.单张图像的读取

MNIST的图像大小是28x28,我们先读取train-images图像中的第一张图像。

备注:因为images文件头部有4个integer的类型,需要跳过去;

import numpy as np

import struct

import cv2

import matplotlib.pyplot as plt

# 解压后的文件,先取train中的第一张手写图像

binfile = open('train-images.idx3-ubyte' , 'rb')

buf = binfile.read()

index = 0

magic,numImages,numRows,numColumns = struct.unpack_from('>IIII',buf,index)

index += struct.calcsize('>IIII')

im = struct.unpack_from('>784B' ,buf, index) #28x28=784

index += struct.calcsize('>784B')

im = np.reshape(im,(28,28))

# 显示第一张图像

fig = plt.figure()

plotwindow = fig.add_subplot(111)

plt.imshow(im,cmap='gray')

plt.show()

2.多张图像的读取

读取了100张的t10k的测试图像和标签,并且显示和保存到文件夹。

import numpy as np

import struct

import matplotlib.pyplot as plt

import cv2

def readfile():

binfile1 = open('t10k-images.idx3-ubyte' , 'rb')

buf1 = binfile1.read()

binfile2 = open('t10k-labels.idx1-ubyte' , 'rb')

buf2 = binfile2.read()

return buf1, buf2

def get_image(buf1):

image_index = 0

image_index += struct.calcsize('>IIII')

magic,numImages,imgRows,imgCols=struct.unpack_from(">IIII",buf1,0)

im = []

for i in range(100):

temp = struct.unpack_from('>784B', buf1, image_index)

im.append(np.reshape(temp,(28,28)))

image_index += struct.calcsize('>784B')

return im

def get_label(buf2):

label_index = 0

label_index += struct.calcsize('>II')

return struct.unpack_from('>100B', buf2, label_index)

if __name__ == "__main__":

image_data, label_data = readfile()

im1 = get_image(image_data)

label = get_label(label_data)

for i in range(100):

plt.subplot(10, 10, i + 1)

title = str(label[i])

plt.title(title)

plt.imshow(im1[i], cmap='gray')

cv2.imwrite("\\testIM"+str(i)+".jpg",im1[i])

plt.show()

多张图像的结果如下图所示:

三、在tensorflow中的使用

MNIST数据集在机器学习方面已经被广泛应用,表现还算出色,比如说在MNIST上采用Softmax回归训练,在MNIST上使用CNN做可视化训练等等。在tensorflow上MNIST可以直接调取,只需要导入input_data.py这个文件就可以,不需要对其进行二进制文件转为图像文件的步骤,使用tensorflow.contrib.learn中的read_data_sets来加载数据就可以啦(FLAGS.data_dir是MNIST所在路径),代码如下:

import tensorflow as tf

from tensorflow.examples.tutorials.mnist import input_data

mnist = input_data.read_data_sets(FLAGS.data_dir,one_hot=True)

MNIST数据集就介绍到这里啦,MNIST数据集算是机器学习的入门数据集,在分类等问题上有很出色的表现!以后会陆续的出一些数据集的介绍和分享~请大家持续关注哦!蟹蟹大家!

mnist数据集下载linux,机器学习数据集篇——MNIST数据集相关推荐

  1. 人工智能大数据,公开的海量数据集下载,ImageNet数据集下载,数据挖掘机器学习数据集下载...

    人工智能大数据,公开的海量数据集下载,ImageNet数据集下载,数据挖掘机器学习数据集下载 ImageNet挑战赛中超越人类的计算机视觉系统 微软亚洲研究院视觉计算组基于深度卷积神经网络(CNN)的 ...

  2. 人工智能大数据,公开的海量数据集下载,ImageNet数据集下载,数据挖掘机器学习数据集下载

    人工智能大数据,公开的海量数据集下载,ImageNet数据集下载,数据挖掘机器学习数据集下载 ImageNet挑战赛中超越人类的计算机视觉系统 微软亚洲研究院视觉计算组基于深度卷积神经网络(CNN)的 ...

  3. 【数据集下载神器】体验1000+优质数据集极速下载

    在一个合格模型的诞生过程中,繁杂的数据收集与处理工作往往给算法工程师带来了低效的工作体验. ▲一个模型的诞...生... 好的数据,对模型训练至关重要.自己做数据,即昂贵又费时费力:但是,使用现成的数 ...

  4. [机器学习-实战篇]Imdb数据集情感分析之贝叶斯

    一, 前言 1.Imdb影评的数据集介绍与下载 2.贝叶斯原理介绍 3.TF-IDF是什么 二,代码介绍 preprocess_data() 方法包含以下步骤: 加载Imdb影评数据. 用数据训练Co ...

  5. ImageNet2012 数据集下载

    机器学习需要用 ImageNet2012 数据集生成一下预训练文件,这里记录一下ImageNet2012的下载和处理.(需要linux环境) 1 数据集下载 使用的是ImageNet(ISLVRC20 ...

  6. 常见目标跟踪数据集下载链接整理(更新中)

    搜罗一下,感觉没人把常见的目标跟踪数据集下载链接汇总整理的,这里就整理一下,因为有些网址很难打开,这里也是想方便之后大家获取,来看看吧!我就从大佬图中来找几个吧!因为不是全接触过,有些链接不是很好,有 ...

  7. 深度学习目标检测数据集下载

    coco与voc数据集下载与准备 coco与voc数据集下载 在远程服务器上测试目标检测算法需要用到测试集,最常用的是coco2014/2017和voc07/12数据集. coco数据集的地址为htt ...

  8. 机器学习Tensorflow基于MNIST数据集识别自己的手写数字(读取和测试自己的模型)

    机器学习Tensorflow基于MNIST数据集识别自己的手写数字(读取和测试自己的模型)

  9. MNIST数据集下载及可视化

    MNIST数据集介绍 MNIST数据集官网:http://yann.lecun.com/exdb/mnist/ MNIST数据库是非常经典的一个数据集,就像你学编程起初写一个"Hello W ...

  10. mnist 数据集 下载 训练 测试 pytorch

    1.下载 可以使用 #train_set = mnist.MNIST('./data', train=True, download=True) 但是速度慢一般无法下载,官网下载也较慢 提供官网下载的压 ...

最新文章

  1. 在2011年QCon北京大会上的主题分享内容——Keynote
  2. springmvc+spring+mybatis基于soa架构进行框架整合思路分析
  3. Nginx-Lua模块的执行顺序
  4. apache mediawiki 安装_MediaWiki初探:安装及使用入门
  5. EXCEL 选中单元格并拖动等操作。
  6. 在商业化这件事上,百度Apollo智能车联究竟做得怎么样了?
  7. 重庆要做的“边缘计算”,是什么?
  8. Linux安装后的配置操作
  9. jQuery插件,UI
  10. 什么是数据中台系统 - whale帷幄
  11. 1 Nginx性能优化方法
  12. 前端框架VUE学习纪要
  13. 华为服务器BMC方式安装系统-官方文档解读
  14. web前端从学习到学废
  15. 个人计算机也可称为,个人计算机简称为PC机,这种计算机属于什么?
  16. 流利阅读 2019.2.23 China’s Forbidden City opens to the general public at night for the first time in 94
  17. 华为云在重庆又“火”了一把
  18. 解决Win10系统EFI引导出错,导致无法开机的问题
  19. scanner/portscan/syn
  20. flash php mysql_求 Flash + PHP + MYSQL 简单的留言本~

热门文章

  1. 一种应用于GPS反欺骗的基于MLE的RAIM改进方法
  2. 计算机切换器鼠标反应慢,解决鼠标反应迟钝与反应慢故障的方法
  3. 安装程序Repack攻略之MSI篇
  4. 清华毕业生开发新特效编程语言,99行代码实现《冰雪奇缘》,网友:大神碉堡!创世的快乐
  5. CSDN网站系统升级公告
  6. Gnu Screen用法 【转】
  7. 以固定速率发包工具linux,linux发包软件-指定卡合同如何在linux下封闭包
  8. c语言课程设计报告内容,c语言课程设计报告
  9. 【数学分析笔记01】平均值不等式证明
  10. EVE上传Dynamips、IOL和QEMU镜像