gpt4 book ai didi

multithreading - 多个小的 h5 文件或一个巨大的文件之间最好的是什么?

转载 作者:行者123 更新时间:2023-12-03 12:43:53 40 4
gpt4 key购买 nike

我正在处理巨大的卫星数据,我将这些数据分成小块以提供给深度学习模型。我正在使用 pytorch,这意味着数据加载器可以使用多线程。
[设置:python,Ubuntu 18.04]

我找不到任何答案在以下之间的数据访问和存储方面是最好的:

  • 将所有数据注册到一个巨大的 HDF5 文件中(超过 20Go)
  • 将其拆分为多个(超过 16 000 个)小的 HDF5 文件(大约
    1.4Mo)。

  • 多线程多次访问一个文件有什么问题吗?在另一种情况下,拥有那么多文件会产生影响吗?

    最佳答案

    如果我是你,我会选择多个文件(但要读到最后)。

    直观地说,您可以将至少一些文件加载​​到内存中,从而稍微加快进程(如果使用 20GB,您不太可能这样做,因为 RAM 访问速度要快得多)。

    您可以在第一次过去期间缓存这些示例(在自定义 torch.utils.data.Dataset 实例中)并检索缓存的示例(比如在 list 或其他内存效率更高的数据结构中,最好具有更好的缓存位置)而不是从磁盘读取(类似的方法)到 Tensorflow 的 tf.data.Dataset 对象中的一个,它是 cache 方法)。

    另一方面,这种方法更麻烦,更难正确实现,
    如果你是 只看具有多个线程的文件应该没问题,并且此操作不应该有任何锁定。

    请记住使用 pytorch 的分析器 ( torch.utils.bottleneck ) 衡量您的方法,以查明确切的问题并验证解决方案。

    关于multithreading - 多个小的 h5 文件或一个巨大的文件之间最好的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56884090/

    40 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com