MNIST数据读取-numpy版本

MNIST数据集地址:http://yann.lecun.com/exdb/mnist/

格式解释

范例

超简单的numpy读取代码:

import numpy as np

train_images_path = 'train-images.idx3-ubyte'
train_labels_path = 'train-labels.idx1-ubyte'

test_images_path = 't10k-images.idx3-ubyte'
test_labels_path = 't10k-labels.idx1-ubyte'

def get_dataset(data_path):
    train_images = read_idx_file(data_path + train_images_path)
    train_labels = read_idx_file(data_path + train_labels_path)
    
    test_images = read_idx_file(data_path + test_images_path)
    test_labels = read_idx_file(data_path + test_labels_path)

    return train_images, train_labels, test_images, test_labels

def read_idx_file(file_name):
    byte_data = np.fromfile(file_name, dtype=np.uint8)

    file_type_id = byte_data[2]
    items = byte_data[3]
    data_shape = np.zeros((items, ), dtype=np.int32)

    for i in range(items):
        dim_t = byte_data[4 + i * 4 : 4 + (i + 1) * 4]
        dim_t.dtype = np.uint32
        dim_t.byteswap(inplace=True) # convert big edian
        data_shape[i] = dim_t[0]

    data_offset = items * 4 + 4
    data = byte_data[data_offset:].reshape(data_shape)
    return data

验证结果

import matplotlib.pyplot as plt

from read_data import get_dataset

data_path = r'G:\dataset\MNIST' + '\\'

train_images, train_labels, test_images, test_labels = get_dataset(data_path)

# evaluate the codes
img0 = train_images[0]
plt.imshow(img0)
plt.show()


 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Luchang-Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值