请选择 进入手机版 | 继续访问电脑版
查看: 2179|回复: 0

[远程开发] TFRecord读取很慢

[复制链接]

66

主题

151

帖子

1014

积分

xdtech

Rank: 5Rank: 5

积分
1014
发表于 2020-4-27 20:34:28 | 显示全部楼层 |阅读模式
为了提高TFRecord的读取速度,可以考虑下面四个方法:
一、设置MIN_AFTER_DEQUEUE
对于函数tf.train.shuffle_batch([feature], batch_size=batch_size,num_threads=2, capacity=MIN_AFTER_DEQUEUE + 3*batch_size,min_after_dequeue=MIN_AFTER_DEQUEUE),其中常量MIN_AFTER_DEQUEUE的设置非常关键。一个较大的MIN_AFTER_DEQUEUE将助力模型训练,尽管启动时间会慢以及将占用更高的内存。
二、CPU vs GPU
数据预处理时用CPU,对于计算量大的矩阵操作则放在GPU上运行。如果GPU很少处于100%的利用率,这表明CPU没有从磁盘加载足够的数据来喂给模型。
三、保留较大的tfrecords
尝试保留较大的tfrecords而不是许多tdrecords,以便可以在不切换多个文件的情况下更快地读取数据。
四、使用压缩格式
如果要处理图像类型的数据,请不要将原始图像保存到tfrecords中,而应使用jpeg或类似格式,这样它们将占用更少的文件大小,并且可以更快地读取。 jpeg解码计算对于GPU来说是非常小的成本。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表