《如何制作类mnist的金融数据集》——3.生成index.ubyte文件

这篇具有很好参考价值的文章主要介绍了《如何制作类mnist的金融数据集》——3.生成index.ubyte文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

3.生成index.ubyte文件

     这里我主要参考了 这篇博客,他们把这块的知识解释得很到位了,我这里也没什么补充的。主要是拿到训练集图片与标签的index_ubyte文件和测试集的图片与标签的index_ubyte文件。共四个文件。

非常感谢我的参考博客:

https://blog.csdn.net/qq_44042678/article/details/131631917?spm=1001.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数据集了,可以去尽情的使用了。文章来源地址https://www.toymoban.com/news/detail-808054.html

到了这里,关于《如何制作类mnist的金融数据集》——3.生成index.ubyte文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 学习笔记:Pytorch利用MNIST数据集训练生成对抗网络(GAN)

    2023.8.27        在进行深度学习的进阶的时候,我发了生成对抗网络是一个很神奇的东西,为什么它可以“将一堆随机噪声经过生成器变成一张图片”,特此记录一下学习心得。         2014年,还在蒙特利尔读博士的Ian Goodfellow发表了论 文《Generative Adversarial Networks》(网址

    2024年02月10日
    浏览(40)
  • 单独在文件中打开allure生成的index.html报告时却显示为loading

    【 问题描述 】:单独在文件中打开allure生成的index.html报告时显示为loading,如下图: 【 问题定位 】:其实在allure-report下index.html文件是不能直接打开的,出现页面都是loading的情况,这是因为直接allure报告用浏览器是打不开的,需要用allure命令渲染之后打开才能展示效果。

    2024年02月16日
    浏览(32)
  • GAN实现mnist生成

    GAN参考,他写的超好 在上面的代码中,优化 Discriminator(D)和 Generator(G)是分开进行的。当优化 Discriminator 时,只有 Discriminator 的参数会被更新。这是通过执行 d_loss.backward() 和 d_optimizer.step() 来实现的。在这一步,Generator 的参数不会被更新。 同样地,当优化 Generator 时,只

    2024年02月07日
    浏览(50)
  • unity如何制作随机生成器

    随机生成器的制作至少应具备四个个要素:需要随机生成的物体、物体随机生成的间隔时间、每生成一次的物体个数、一定时间后销毁物体。 其中最关键的问题是如何间隔一定时间生成,这里提供两种思路:1.运用协程。2.做个计时器。 在这里我们需要初步了解一下协程。

    2023年04月09日
    浏览(55)
  • 使用Altium Designer进行钢网文件的生成和制作

    因为个人原因好久没有更新了,现在使用Altium Designer20进行讲解钢网文件的生成和制作。 这里我介绍的钢网文件就两种,一种是生成 Gerber文件 直接打包给厂家(可以参考往期生成Gerber文件的方法),由厂家判断哪些是贴片元器件哪些是插件元器件,他们会用焊盘层作为钢网

    2023年04月10日
    浏览(60)
  • 安卓APP证书Android签名证书.keystore文件制作生成

    将app发布到应用宝时,而上传安装包时提示如下图时, 但您或您的团队从未上传该应用,您可以通过认领功能认领应用。认领成功后该应用会自动转入您的账户下,同时保留应用全部数据,您可以在应用管理中进行管理。 1.点击认领应用 ,确认需认领应用的包名是否是你的

    2024年02月02日
    浏览(47)
  • 生成对抗网络GAN(MNIST实现、时间序列实现)

    生成对抗网络(Generative Adversarial Network,简称GAN)是一种深度学习模型,由Ian Goodfellow等人于2014年提出。它由两个主要组件组成:生成器(Generator)和判别器(Discriminator)。GAN的目标是通过两个网络之间的对抗学习来生成逼真的数据。 生成器(Generator): 生成器是一个神经

    2024年01月21日
    浏览(47)
  • AI时代PPT如何制作?用这10款pptai生成器一键制作!

    这可能是很多职场人或大学生日常头疼的问题,职场上随便一个工作汇报、提案展示、团队会议,学校里的小组作业、论文答辩等场景,都会用到ppt。 都说人是视觉动物,在两份文档内容质量一致的情况下,一份制作精良、美观的PPT,无疑会给人留下深刻的印象,让人更愿意

    2024年04月09日
    浏览(44)
  • 金融用户敏感数据如何优雅地实现脱敏?

    日志脱敏是常见的安全需求。普通的基于工具类方法的方式,对代码的入侵性太强,编写起来又特别麻烦。 sensitive 提供了基于注解的方式,并且内置了常见的脱敏方式,便于开发。 为了金融交易的安全性,国家强制规定对于以下信息是要日志脱敏的: 用户名 手机号 邮箱

    2024年02月07日
    浏览(40)
  • 如何使用Puppeteer进行金融数据抓取和预测

    Puppeteer是一个基于Node.js的库,可以用来控制Chrome或Chromium浏览器,实现网页操作、截图、PDF生成等功能。本文将介绍如何使用Puppeteer进行金融数据抓取和预测,以及如何使用亿牛云爬虫代理提高爬虫效果。 金融数据抓取是指从网上获取金融相关的数据,如股票、基金、期货、

    2024年02月09日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包