码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python实现将图片数据以TFRecord方式存储


    以TFRecord方式存储的优点

    1. 高效性:TFRecord是一种二进制格式,可以提供更高的存储和读取效率。它可以更快地读取和解析数据,特别适用于大规模数据集

    2. 可压缩性:TFRecord可以使用压缩算法进行压缩,减小数据文件的大小。这对于需要传输或存储大量数据的场景非常有用,可以减少存储空间和网络传输带宽的消耗

    3. 灵活性:TFRecord可以存储多种类型的数据,包括数字、字符串、图像、音频等

    4. 数据读取效率高:使用TFRecord文件可以将数据预处理为模型所需的格式,并通过TensorFlow的数据读取API高效地读取和加载数据。这可以提高训练和推理的效率,并充分利用GPU等硬件资源

    5. 支持并行读取:TFRecord文件可以被并行读取,多个线程可以同时读取不同的TFRecord文件或不同的数据样本,提高数据加载的并行性和效率

    代码示例

    将目标分类的数据存储成“.tfrecord”文件,

    1. import os, cv2, warnings
    2. import tensorflow as tf
    3. import numpy as np
    4. from tqdm import tqdm
    5. img_paths = []
    6. images = []
    7. labels = []
    8. for img_path in img_paths:
    9. img = cv2.imread(img_path)
    10. if img is None:
    11. print(f"Image at {img_path} is corrupted and will be skipped.")
    12. continue
    13. images.append(img)
    14. labels.append(1) ## 假设图片的label为1
    15. def _bytes_feature(value):
    16. if isinstance(value, type(tf.constant(0))):
    17. value = value.numpy()
    18. return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value]))
    19. def _int64_feature(value):
    20. return tf.train.Feature(int64_list=tf.train.Int64List(value=[value]))
    21. def create_example(img, label):
    22. img_bytes = img.tostring()
    23. feature = {
    24. 'height': _int64_feature(img.shape[0]),
    25. 'width': _int64_feature(img.shape[1]),
    26. 'depth': _int64_feature(img.shape[2]),
    27. 'label': _int64_feature(label),
    28. 'image_raw': _bytes_feature(img_bytes),
    29. }
    30. return tf.train.Example(features=tf.train.Features(feature=feature))
    31. def write_tfrecord(file_path, images, labels):
    32. with tf.io.TFRecordWriter(file_path) as writer:
    33. for i in tqdm(range(len(images))):
    34. example = create_example(images[i], labels[i])
    35. writer.write(example.SerializeToString())
    36. write_tfrecord("xxx.tfrecord", images, labels)

  • 相关阅读:
    Java Web 学习笔记(三) —— Maven 基础
    基于SSM框架的图片分享及评价网站设计与实现 毕业设计-附源码201524
    【阿里云】图像识别
    能自动更新的万能周报模板,有手就会用!
    C专家编程 第9章 再论数组 9.2 为什么会发生混淆
    攻击异常丨处理突破GS保护
    微信小程序连接蓝牙汉印HM-A300L标签打印机
    基于JavaSwing开发中国象棋对战游戏+实验报告 课程设计 大作业
    【打工日常】使用docker部署个人实时在线文档协助编辑器
    Docker基本操作三 (容器相关命令二)
  • 原文地址:https://blog.csdn.net/qq_38964360/article/details/134099275
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号