MNIST 数据可视化:最近一直在弄如何将自己的数据做成 google 提供 MNIST 数据格式,用于 test。但是一直还没搞出结果,而本文我想介绍一下如何将 google 提供的 MNIST 数据转化为可视化的图片。
google 提供的 MNIST 数据是压缩包,但是解压出来发现不是想要的结果,竟然是二进制文件,如何将这些二进制文件转换成图片呢,本文将给出具体的代码。
利用 python 将影像读取出来。
- #get the images and labels mnist# - *-coding: utf - 8 - *-from PIL import Image import struct def read_image(filename, file_path) : f = open(filename, 'rb') index = 0 buf = f.read() print buf f.close() magic,
- images,
- rows,
- columns = struct.unpack_from('>IIII', buf, index) index += struct.calcsize('>IIII') for i in xrange(images) : image = Image.new('L', (columns, rows)) for x in xrange(rows) : for y in xrange(columns) : image.putpixel((y, x), int(struct.unpack_from('>B', buf, index)[0])) index += struct.calcsize('>B') print 'save ' + str(i) + 'image'image.save(file_path + str(i) + '.png') def read_label(filename, saveFilename) : f = open(filename, 'rb') index = 0 buf = f.read() f.close() magic,
- labels = struct.unpack_from('>II', buf, index) index += struct.calcsize('>II') labelArr = [0] * labels
- for x in xrange(labels) : labelArr[x] = int(struct.unpack_from('>B', buf, index)[0]) index += struct.calcsize('>B') save = open(saveFilename, 'w') save.write(','.join(map(lambda x: str(x), labelArr))) save.write('\n') save.close() print 'save labels success'
- if __name__ == '__main__': #the filepath of data file_path = r '/data/'#get images read_image(file_path + 'train-images-idx3-ubyte', file_path)#get labels read_label(file_path + 'train-labels-idx1-ubyte', file_path + 'label.txt')
就爱阅读 www.92to.com 网友整理上传, 为您提供最全的知识大全, 期待您的分享,转载请注明出处。
来源: http://www.92to.com/bangong/2017/03-13/18658205.html