谁能解释一下使用tensorflow_datasets
时在这一行中.cache()
的目的是什么
train_batches = train_examples.cache().shuffle(num_examples // 4).map(format_image).batch(32).prefetch(1)
顾名思义,它将示例缓存在内存中(如果提供了文件名,则缓存在磁盘上(。例如,如果train_examples
包括昂贵的预处理,则不需要以增加内存消耗为代价为每个纪元重复预处理。
请注意,由于顺序,.cache()
之后调用的所有方法仍在每个纪元执行。根据情况,在.cache()
之前打电话给.map()
可能是有益的。但是,洗牌和批处理通常应该称为最后。
有关详细信息,请查看官方文档。