【问题探究】tensorflow中TFRecordWriter的某些特点(问题未解决)

本文讲述了在使用TensorFlow的TFRecordWriter时遇到的内存泄漏和随着保存数据增加速度减缓的问题。作者通过多线程尝试优化,但问题依旧存在,期待进一步的研究和解决方案。

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

前言:

{

    这几天也是没有进展。之前的多目标识别的理论基础实际上是YOLO1,但总是不成功,我就先把文件生成的代码优化一下。

}

 

正文:

{

    tensorflow.python_io.TFRecordWriter(“参数”)会返回一个writer对象,之后直接调用 writer.write(“参数”)便可保存数据。

    但是这个函数容易出2个问题,一是内存泄漏,这就需要用到writer.close();另一个问题我现在还没搞明白:保存数据的次数越多,速度就越慢,而且速度慢的时候CPU,内存和硬盘都是比较空闲的。

    打个比方,程序刚开始运行的时候,1秒钟大概能生成2个文件;在生成第7000个文件的时候,大约2秒钟生成一个文件;当到10000个文件时,需要大约5秒钟才能生成一个文件,这时电脑资源都是比较空闲的。

    我也在网上搜了一下,可能是我的搜索方式有问题,没搜到什么东西,也没在官网上找到相关信息[1]。

    我试过多线程加速,但多线程还是会受到减速的影响。目前我没去研究代码,而是先用了一个笨方法:使用多线程,而且是在时间和空间上都使用多线程。

    代码1是使用目前解决方案的VOC2012文件数据到TFRecord(标签中只有object的数据)的多线程转换。

#代码1
# -- coding: utf-8 --
'''
此文件实现JPG和xml标签到TFRecord的转换(VOC2012多进程版本),其中对每个JPG源文件都会生成一个TFRecord目标文件。
文件名“test_data_28.TFRecord”表示测试数据的第29个文件(第一个文件的文件号为0)。
-----------------2018.11.1------------------------------------------------
now the labels are changed to the numbers of objects in the images.
'''
import glob
import os.path
import time
import tensorflow as tf
import numpy as np
import gc
from tensorflow.python.platform import gfile
import xml.etree.ElementTree as ET
import dictionary
from m
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值