gpt4 book ai didi

python - 打开多个文件处理程序会减慢写入时间吗?

转载 作者:行者123 更新时间:2023-11-28 23:04:13 24 4
gpt4 key购买 nike

与实际写入时间相比,在 Python 中打开文件处理程序的过程是否慢?

一个大文件,一个文件处理程序

import marshal
bigDataStructure = [[1000000.0 for j in range(1000000)] for i in range(1000000)]
f = open('bigFile' , 'w')
marshal.dump(bigDataStructure , f)
f.close()

多个较小的文件,多个文件处理程序

for i , row in enumerate(bigDataStructure):
f = open(str(i) , 'w'):
marshal.dump(row , f)
f.close()

最佳答案

您提到如果将它们全部合并会耗尽内存——那是很多神经元。 (至少,根据我的经验,几百个神经元对于我们在 CS 类(class)中编写的玩具程序就足够了。)

您可能不希望创建 100,000 个单独的文件来存储 100,000 个单独的神经元,当然也不希望创建 1,000,000 个文件来存储 1,000,000 个神经元。目录查找、文件打开、读取、关闭和少量 IO 的 IO 开销将极大地影响加载和保存大量神经元。

当然,如果您正在考虑 50 或 100 个神经元,那么无论如何它都会很快进行,也许需要最简单的实现。

但如果这是我的,我会努力尝试为神经元构建良好的数据结构:也许给定级别中的所有神经元都可以用一个整数来描述以选择神经元类型和一个整数数组或doubles 来描述每个神经元的特征,并且可以轻松地将这些级别描述的列表写入单独的文件或单个文件中,以更容易的为准。

如果您的神经元在一个级别内改变类型,或者在级别之间没有完全连接,您可能会发现一些 sparse matrix storage对可同时描述所有神经元的更大数据结构有用的设计。

也许真正的问题应该是“我如何改善神经元的存储?”

更新

我认为即使有 10,000 个神经元也足以构成一种“组合”存储格式。我刚刚创建了 10,000 个小文件,删除了缓存以测试冷启动,然后分别重新读取每个文件。读取 10,000 个文件需要 14.6 秒。读取包含与 10,000 个文件相同数据的单个文件仅需 0.1 秒。

如果您的网络大约每年“冷”一次,也许这并不重要。但是,如果您的网络每天启动十几次,您可能会逐渐厌恶更简单的存储格式。

关于python - 打开多个文件处理程序会减慢写入时间吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7883521/

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