在上一篇文章tensorflow入门:tfrecord 和tf.data.TFRecordDataset里,讲到了使用如何使用tf.data.TFRecordDatase来对tfrecord文件进行batch读取,即使用dataset的batch方法进行;但如果每条数据的长度不一样(常见于语音、视频、NLP等领域),则不能直接用batch方法获取数据,这时则有两个解决办法:
1.在把数据写入tfrecord时,先把数据pad到统一的长度再写入tfrecord;这个方法的问题在于:若是有大量数据的长度都远远小于最大长度,则会造成存储空间的大量浪费。
--------------------------------------------------------------------------------------------------------------
2.使用dataset中的padded_batch方法来进行,参数padded_shapes #指明每条记录中各成员要pad成的形状,成员若是scalar,则用[],若是list,则用[mx_length],若是array,则用[d1,...,dn],假如各成员的顺序是scalar数据、list数据、array数据,则padded_shapes=([], [mx_le

本文介绍了在处理变长数据时,如何使用TensorFlow的TFRecordDataset结合padded_batch方法进行批量读取。通过对比传统batch方法的局限性,提出在数据写入阶段进行padding的缺点,进而详细阐述了padded_batch的使用方法,包括设置padded_shapes参数,并给出使用mnist数据进行实例演示的过程。
最低0.47元/天 解锁文章
1862

被折叠的 条评论
为什么被折叠?



