热门标签 | 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()

跑出的结果如下:

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



推荐阅读
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 本文介绍了在Windows环境下使用pydoc工具的方法,并详细解释了如何通过命令行和浏览器查看Python内置函数的文档。此外,还提供了关于raw_input和open函数的具体用法和功能说明。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • ServiceStack与Swagger的无缝集成指南
    本文详细介绍了如何在ServiceStack项目中集成Swagger,以实现API文档的自动生成和在线测试。通过本指南,您将了解从配置到部署的完整流程,并掌握如何优化API接口的开发和维护。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 如何在窗口右下角添加调整大小的手柄
    本文探讨了如何在传统MFC/Win32 API编程中实现类似C# WinForms中的SizeGrip功能,即在窗口的右下角显示一个用于调整窗口大小的手柄。我们将介绍具体的实现方法和相关API。 ... [详细]
  • 本文介绍了如何在C#中启动一个应用程序,并通过枚举窗口来获取其主窗口句柄。当使用Process类启动程序时,我们通常只能获得进程的句柄,而主窗口句柄可能为0。因此,我们需要使用API函数和回调机制来准确获取主窗口句柄。 ... [详细]
  • Google最新推出的嵌入AI技术的便携式相机Clips现已上架,旨在通过人工智能技术自动捕捉用户生活中值得纪念的时刻,帮助人们减少照片数量过多的问题。 ... [详细]
  • 本文详细介绍了Java中的访问器(getter)和修改器(setter),探讨了它们在保护数据完整性、增强代码可维护性方面的重要作用。通过具体示例,展示了如何正确使用这些方法来控制类属性的访问和更新。 ... [详细]
  • libsodium 1.0.15 发布:引入重大不兼容更新
    最新发布的 libsodium 1.0.15 版本带来了若干不兼容的变更,其中包括默认密码散列算法的更改和其他重要调整。 ... [详细]
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社区 版权所有