热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python调用数据集mnist_pythonMNIST手写识别数据调用API的方法

MNIST数据集比较小,一般入门机器学习都会采用这个数据集来训练有4个有用的文件:train-images-idx3-ubyte:trainingset

MNIST数据集比较小,一般入门机器学习都会采用这个数据集来训练

有4个有用的文件:

train-images-idx3-ubyte: training set images

train-labels-idx1-ubyte: training set labels

t10k-images-idx3-ubyte: test set images

t10k-labels-idx1-ubyte: test set labels

The training set contains 60000 examples, and the test set 10000 examples. 数据集存储是用binary file存储的,黑白图片。

下面给出load数据集的代码:

import os

import struct

import numpy as np

import matplotlib.pyplot as plt

def load_mnist():

'''

Load mnist data

http://yann.lecun.com/exdb/mnist/

60000 training examples

10000 test sets

Arguments:

kind: 'train' or 'test', string charater input with a default value 'train'

Return:

xxx_images: n*m array, n is the sample count, m is the feature number which is 28*28

xxx_labels: class labels for each image, (0-9)

'''

root_path = '/home/cc/deep_learning/data_sets/mnist'

train_labels_path = os.path.join(root_path, 'train-labels.idx1-ubyte')

train_images_path = os.path.join(root_path, 'train-images.idx3-ubyte')

test_labels_path = os.path.join(root_path, 't10k-labels.idx1-ubyte')

test_images_path = os.path.join(root_path, 't10k-images.idx3-ubyte')

with open(train_labels_path, 'rb') as lpath:

# '>' denotes bigedian

# 'I' denotes unsigned char

magic, n = struct.unpack('>II', lpath.read(8))

#loaded = np.fromfile(lpath, dtype = np.uint8)

train_labels = np.fromfile(lpath, dtype = np.uint8).astype(np.float)

with open(train_images_path, 'rb') as ipath:

magic, num, rows, cols = struct.unpack('>IIII', ipath.read(16))

loaded = np.fromfile(train_images_path, dtype = np.uint8)

# images start from the 16th bytes

train_images = loaded[16:].reshape(len(train_labels), 784).astype(np.float)

with open(test_labels_path, 'rb') as lpath:

# '>' denotes bigedian

# 'I' denotes unsigned char

magic, n = struct.unpack('>II', lpath.read(8))

#loaded = np.fromfile(lpath, dtype = np.uint8)

test_labels = np.fromfile(lpath, dtype = np.uint8).astype(np.float)

with open(test_images_path, 'rb') as ipath:

magic, num, rows, cols = struct.unpack('>IIII', ipath.read(16))

loaded = np.fromfile(test_images_path, dtype = np.uint8)

# images start from the 16th bytes

test_images = loaded[16:].reshape(len(test_labels), 784)

return train_images, train_labels, test_images, test_labels

再看看图片集是什么样的:

def test_mnist_data():

'''

Just to check the data

Argument:

none

Return:

none

'''

train_images, train_labels, test_images, test_labels = load_mnist()

fig, ax = plt.subplots(nrows = 2, ncols = 5, sharex = True, sharey = True)

ax =ax.flatten()

for i in range(10):

img = train_images[i][:].reshape(28, 28)

ax[i].imshow(img, cmap = 'Greys', interpolation = 'nearest')

print('corresponding labels = %d' %train_labels[i])

if __name__ == '__main__':

test_mnist_data()

跑出的结果如下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。



推荐阅读
  • 本文详细探讨了在Java中如何将图像对象转换为文件和字节数组(Byte[])的技术。虽然网络上存在大量相关资料,但实际操作时仍需注意细节。本文通过使用JMSL 4.0库中的图表对象作为示例,提供了一种实用的方法。 ... [详细]
  • iOS如何实现手势
    这篇文章主要为大家展示了“iOS如何实现手势”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“iOS ... [详细]
  • 本文介绍了如何使用 Python 的 Pyglet 库加载并显示图像。Pyglet 是一个用于开发图形用户界面应用的强大工具,特别适用于游戏和多媒体项目。 ... [详细]
  • 使用Python构建网页版图像编辑器
    本文详细介绍了一款基于Python开发的网页版图像编辑工具,具备多种图像处理功能,如黑白转换、铅笔素描效果等。 ... [详细]
  • 笔记说明重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系& ... [详细]
  • 本文详细介绍了如何使用C#实现不同类型的系统服务账户(如Windows服务、计划任务和IIS应用池)的密码重置方法。 ... [详细]
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • 服务器虚拟化存储设计,完美规划储存与资源,部署高性能虚拟化桌面
    规划部署虚拟桌面环境前,必须先估算目前所使用实体桌面环境的工作负载与IOPS性能,并慎选储存设备。唯有谨慎估算贴近实际的IOPS性能,才能 ... [详细]
  • Python3爬虫入门:pyspider的基本使用[python爬虫入门]
    Python学习网有大量免费的Python入门教程,欢迎大家来学习。本文主要通过爬取去哪儿网的旅游攻略来给大家介绍pyspid ... [详细]
  • 使用Matlab创建动态GIF动画
    动态GIF图可以有效增强数据表达的直观性和吸引力。本文将详细介绍如何利用Matlab软件生成动态GIF图,涵盖基本代码实现与高级应用技巧。 ... [详细]
  • Requests库的基本使用方法
    本文介绍了Python中Requests库的基础用法,包括如何安装、GET和POST请求的实现、如何处理Cookies和Headers,以及如何解析JSON响应。相比urllib库,Requests库提供了更为简洁高效的接口来处理HTTP请求。 ... [详细]
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • Android与JUnit集成测试实践
    本文探讨了如何在Android项目中集成JUnit进行单元测试,并详细介绍了修改AndroidManifest.xml文件以支持测试的方法。 ... [详细]
  • C# 中创建和执行存储过程的方法
    本文详细介绍了如何使用 C# 创建和调用 SQL Server 存储过程,包括连接数据库、定义命令类型、设置参数等步骤。 ... [详细]
  • 机器学习(ML)三之多层感知机
    深度学习主要关注多层模型,现在以多层感知机(multilayerperceptron,MLP)为例,介绍多层神经网络的概念。隐藏层多层感知机在单层神经网络的基础上引入了一到多个隐藏 ... [详细]
author-avatar
版中凌菱
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有