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


Posted in Python onAugust 08, 2018

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

下载地址:yann.lecun.com/exdb/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()

跑出的结果如下:

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

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

Python 相关文章推荐
Python文件和目录操作详解
Feb 08 Python
Python连接mysql数据库的正确姿势
Feb 03 Python
python 第三方库的安装及pip的使用详解
May 11 Python
Python实现的用户登录系统功能示例
Feb 05 Python
python如何压缩新文件到已有ZIP文件
Mar 14 Python
值得收藏,Python 开发中的高级技巧
Nov 23 Python
在python中实现强制关闭线程的示例
Jan 22 Python
Python使用itchat 功能分析微信好友性别和位置
Aug 05 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
Sep 20 Python
python中的 zip函数详解及用法举例
Feb 16 Python
python实现人工蜂群算法
Sep 18 Python
详解BeautifulSoup获取特定标签下内容的方法
Dec 07 Python
python实现屏保计时器的示例代码
Aug 08 #Python
详解Python 装饰器执行顺序迷思
Aug 08 #Python
python Flask 装饰器顺序问题解决
Aug 08 #Python
Python BS4库的安装与使用详解
Aug 08 #Python
python特性语法之遍历、公共方法、引用
Aug 08 #Python
用Python shell简化开发
Aug 08 #Python
在Python中使用gRPC的方法示例
Aug 08 #Python
You might like
Codeigniter操作数据库表的优化写法总结
2014/06/12 PHP
PHP编程计算日期间隔天数的方法
2017/04/26 PHP
点击文章内容处弹出页面代码
2009/10/01 Javascript
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
原生js的弹出层且其内的窗口居中
2014/05/14 Javascript
AngularJS iframe跨域打开内容时报错误的解决办法
2015/01/26 Javascript
JS替换字符串中空格方法
2015/04/17 Javascript
简介JavaScript中fixed()方法的使用
2015/06/08 Javascript
js淡入淡出的图片轮播效果代码分享
2015/08/24 Javascript
JS图片定时翻滚效果实现方法
2016/06/21 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
2016/08/09 Javascript
AngularJS 过滤与排序详解及实例代码
2016/09/14 Javascript
Bootstrap表单使用方法详解
2017/02/17 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
小程序接入腾讯位置服务的详细流程
2020/03/03 Javascript
Vue两种组件类型:递归组件和动态组件的用法
2020/08/06 Javascript
js实现批量删除功能
2020/08/27 Javascript
python中print的不换行即时输出的快速解决方法
2016/07/20 Python
Python输出带颜色的字符串实例
2017/10/10 Python
详解Python使用tensorflow入门指南
2018/02/09 Python
使用pytorch进行图像的顺序读取方法
2018/07/27 Python
使用Python实现微信提醒备忘录功能
2018/12/04 Python
python实现Virginia无密钥解密
2019/03/20 Python
python爬取盘搜的有效链接实现代码
2019/07/20 Python
python将数据插入数据库的代码分享
2020/08/16 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
2021/01/12 Python
瑜伽国际:Yoga International
2018/04/18 全球购物
专业毕业生个性的自我评价
2013/10/03 职场文书
开业庆典主持词
2014/03/21 职场文书
新年联欢会主持词
2014/03/27 职场文书
广告宣传策划方案
2014/05/21 职场文书
环保守法证明
2015/06/24 职场文书
大学生先进个人主要事迹材料
2015/11/04 职场文书
uwsgi+nginx代理Django无法访问静态资源的解决
2021/05/10 Servers
关于Python使用turtle库画任意图的问题
2022/04/01 Python
css3 选择器
2022/05/11 HTML / CSS