我有一个CPU+GPU实例,用于训练tf模型。我的数据在SSD上。我使用了tf的Dataset API,它具有交错、映射和无pyfunc功能,以便在不受I/o限制的情况下高效运行。它与<;1%的时间用于等待输入数据,但我无法跟踪导致程序受I/o限制的更改。代码的一个快速总结是,它使用tf.data.FixedLengthRecordDataset加载npy文件,对它们进行堆栈和批处理。您可以从配置文件中看到任何提示吗?它看起来很稀疏,有很多中断,好像并行性不能正常工作
ds = dataset.interleave(
numpy_file_parser, tf.data.experimental.AUTOTUNE
)
ds_train = (ds
.repeat()
.shuffle(1000, reshuffle_each_iteration=True)
.batch(batch_size)
.prefetch(tf.data.experimental.AUTOTUNE)
)
原来是TF2.3.0造成的。我使用的是TF2.3中不完全支持的6.1 GPU。在release notes
恢复到TF2.2解决了这个问题
相关问题 更多 >
编程相关推荐