我在谷歌硬盘上使用PlantVillage(图像(数据集的一个子集,并试图根据谷歌Colab的数据训练CNN模型(当然,我使用GPU(。问题是,训练的第一个阶段进行得非常缓慢,因为数据是第一次加载到GPU中。后几轮的移动速度要快得多,而且在可预测的时间范围内。现在,这是否可以在训练前进行加载并将其排除在外?我想用%%的时间来训练,而在训练中有额外的负荷时间会把事情搞砸。
我使用Tensorflow和Keras应用程序进行数据预处理和模型训练。
您可以使用Dataset.cache()
和Dataset.prefetch()
,它们将在从磁盘加载后将数据保留在内存中,并将相对提高模型训练速度。
检查以下代码:
AUTOTUNE = tf.data.AUTOTUNE
train_ds = train_ds.cache().prefetch(buffer_size=AUTOTUNE)
val_ds = val_ds.cache().prefetch(buffer_size=AUTOTUNE)
请查看此链接以供参考。