滨海做网站哪家最好,浏览器网站大全,wordpress文章一部分加密,微商推广网站怎么做3#xff0e;生成index.ubyte文件 这里我主要参考了 这篇博客#xff0c;他们把这块的知识解释得很到位了#xff0c;我这里也没什么补充的。主要是拿到训练集图片与标签的index_ubyte文件和测试集的图片与标签的index_ubyte文件。共四个文件。
非常感谢我的参考博客#…3生成index.ubyte文件 这里我主要参考了 这篇博客他们把这块的知识解释得很到位了我这里也没什么补充的。主要是拿到训练集图片与标签的index_ubyte文件和测试集的图片与标签的index_ubyte文件。共四个文件。
非常感谢我的参考博客
https://blog.csdn.net/qq_44042678/article/details/131631917?spm1001.2014.3001.5506
直接上代码
import os # 用于操作系统相关的功能
from PIL import Image # 用于处理图像
from array import * # 用于数组操作
from random import shuffle # 用于打乱数据顺序# 图像数据的加载和保存路径
Names [[./training-images, train], [./test-images, test]]# 遍历输入的训练和测试数据集
for name in Names:# 创建图像数据和标签数据的数组data_image array(B)data_label array(B)# 获取文件列表FileList []for dirname in os.listdir(name[0])[1:]: # [1:] 用于排除 Mac OS 中的 .DS_Store 文件夹path os.path.join(name[0], dirname)for filename in os.listdir(path):if filename.endswith(.png):FileList.append(os.path.join(name[0], dirname, filename))# 打乱文件列表的顺序有助于进一步划分验证集shuffle(FileList)# 遍历文件列表for filename in FileList:# 获取标签并打开图像文件label int(filename.split(/)[2])Im Image.open(filename)pixel Im.load()width, height Im.size# 遍历图像像素并将其添加到图像数据中for x in range(0, width):for y in range(0, height):data_image.append(pixel[y, x])data_label.append(label) # 添加标签到标签数据中# 计算文件数并将其转换成十六进制形式hexval {0:#0{1}x}.format(len(FileList), 6)# 为标签数组添加头信息header array(B)header.extend([0, 0, 8, 1, 0, 0])header.append(int(0x hexval[2:][:2], 16))header.append(int(0x hexval[2:][2:], 16))data_label header data_label# 为图像数组添加附加头信息if max([width, height]) 256:header.extend([0, 0, 0, width, 0, 0, 0, height])else:raise ValueError(Image exceeds maximum size: 256x256 pixels)header[3] 3 # 修改图像数据的最高有效位 (MSB) (0x00000803)data_image header data_image# 打开并写入图像数据文件output_file open(name[1] -images-idx3-ubyte, wb)data_image.tofile(output_file)output_file.close()# 打开并写入标签数据文件output_file open(name[1] -labels-idx1-ubyte, wb)data_label.tofile(output_file)output_file.close()# 压缩生成的文件
for name in Names:os.system(gzip name[1] -images-idx3-ubyte)os.system(gzip name[1] -labels-idx1-ubyte)
到这可以恭喜你已经拿到了你自己的类mnist数据集了可以去尽情的使用了。