Python处理MINIST数据

本文介绍了一种将MNIST图像数据集转换为适用于LeNet5卷积神经网络输入格式的方法。通过填充和重新排列像素,确保了每张图片能够适配模型的要求。此过程包括读取原始文件、解析头部信息及构建适合训练的图像数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将MINIST图像数据处理成作为LeNet5模型输入数据的结构:

def __imprtImage(filename):
	filehandle = open(filename, 'rb')
	MSB = unpack(">I", filehandle.read(4))[0]
	imageNum = unpack(">I", filehandle.read(4))[0]
	imageRow = unpack(">I", filehandle.read(4))[0]
	imageCol = unpack(">I", filehandle.read(4))[0]
	imageData = filehandle.read()
	filehandle.close()
	
	imageDataArray = np.zeros((1, imageNum*32*32), np.uint8)

	padfile = open(filename+"pad", 'wb')
	for idx in range(imageNum) :
		imageElement = imageData[(imageRow*imageCol*idx) : (imageRow*imageCol*(idx+1))]
		for mdx in range(28):
			imageDataArray[0,(idx * 32*32 + (mdx+2)*32 + 2):(idx * 32*32 + (mdx+2)*32 + 30)] = list(imageElement[(mdx * imageCol): (mdx*imageCol+imageCol)])
		blist = bytes(list(imageDataArray[0,idx*32*32:(idx+1)*32*32]))
		padfile.write(blist)
	padfile.close()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值