python实现将图片数据以TFRecord方式存储

2023-10-29 08:36

本文主要是介绍python实现将图片数据以TFRecord方式存储,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

以TFRecord方式存储的优点

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

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

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

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

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

代码示例

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

import os, cv2, warnings
import tensorflow as tf
import numpy as np
from tqdm import tqdmimg_paths = []
images = []
labels = []
for img_path in img_paths:img = cv2.imread(img_path)if img is None:print(f"Image at {img_path} is corrupted and will be skipped.")continueimages.append(img)labels.append(1)  ## 假设图片的label为1def _bytes_feature(value):if isinstance(value, type(tf.constant(0))):value = value.numpy()return tf.train.Feature(bytes_list=tf.train.BytesList(value=[value]))def _int64_feature(value):return tf.train.Feature(int64_list=tf.train.Int64List(value=[value]))def create_example(img, label):img_bytes = img.tostring()feature = {'height': _int64_feature(img.shape[0]),'width': _int64_feature(img.shape[1]),'depth': _int64_feature(img.shape[2]),'label': _int64_feature(label),'image_raw': _bytes_feature(img_bytes),}return tf.train.Example(features=tf.train.Features(feature=feature))def write_tfrecord(file_path, images, labels):with tf.io.TFRecordWriter(file_path) as writer:for i in tqdm(range(len(images))):example = create_example(images[i], labels[i])writer.write(example.SerializeToString())write_tfrecord("xxx.tfrecord", images, labels)

这篇关于python实现将图片数据以TFRecord方式存储的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/299500

相关文章

windos server2022里的DFS配置的实现

《windosserver2022里的DFS配置的实现》DFS是WindowsServer操作系统提供的一种功能,用于在多台服务器上集中管理共享文件夹和文件的分布式存储解决方案,本文就来介绍一下wi... 目录什么是DFS?优势:应用场景:DFS配置步骤什么是DFS?DFS指的是分布式文件系统(Distr

NFS实现多服务器文件的共享的方法步骤

《NFS实现多服务器文件的共享的方法步骤》NFS允许网络中的计算机之间共享资源,客户端可以透明地读写远端NFS服务器上的文件,本文就来介绍一下NFS实现多服务器文件的共享的方法步骤,感兴趣的可以了解一... 目录一、简介二、部署1、准备1、服务端和客户端:安装nfs-utils2、服务端:创建共享目录3、服

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

Python实现高效地读写大型文件

《Python实现高效地读写大型文件》Python如何读写的是大型文件,有没有什么方法来提高效率呢,这篇文章就来和大家聊聊如何在Python中高效地读写大型文件,需要的可以了解下... 目录一、逐行读取大型文件二、分块读取大型文件三、使用 mmap 模块进行内存映射文件操作(适用于大文件)四、使用 pand

python实现pdf转word和excel的示例代码

《python实现pdf转word和excel的示例代码》本文主要介绍了python实现pdf转word和excel的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、引言二、python编程1,PDF转Word2,PDF转Excel三、前端页面效果展示总结一

Python xmltodict实现简化XML数据处理

《Pythonxmltodict实现简化XML数据处理》Python社区为提供了xmltodict库,它专为简化XML与Python数据结构的转换而设计,本文主要来为大家介绍一下如何使用xmltod... 目录一、引言二、XMLtodict介绍设计理念适用场景三、功能参数与属性1、parse函数2、unpa