gpt4 book ai didi

python - genfromtxt : how to disable caching

转载 作者:太空狗 更新时间:2023-10-30 01:14:30 25 4
gpt4 key购买 nike

我已经确认 genfromtxt 函数(以及派生自它的函数)静默缓存它们正在本地目录中处理的远程文件,并在后续调用中使用本地副本而不检查它是否已更改.
通过查看源文件 npyio.py发生这种情况似乎是因为 DataSource在不传递相关参数的情况下创建处理请求的对象。修改库源以禁用缓存当然很容易,但每次升级后我都必须重复。
还有其他解决办法吗? (除了每次都删除缓存目录)

最佳答案

我觉得这道题其实是由两部分组成的:

  1. 如果库的功能与要求的行为不完全匹配怎么办?

  2. 具体如何处理genfromtxt的缓存行为?

关于 1.,包装(可能通过注入(inject))比修补库更具弹性(除非修补是在上游完成的,在库的 repo 中)。

所以包装 genfromtxt 可以像这样完成:

def patched_gen_from_text(*args, **kwargs):
# Do something regarding caching
return numpy.genfromtxt(*args, **kwargs)

您甚至可以在不修改源代码的情况下将其作为 numpy.genfromtext 注入(inject)(我不推荐这样做):

import numpy 

numpy.genfromtxt = patched_gen_from_text

关于 2. 这实际上取决于您对远程文件系统的访问权限(例如,您可以在那里运行进程吗?您可以安装它吗?),以及速度和所需确定性之间的权衡。

例如,在一种极端情况下,您的补丁版本可能会无条件地删除本地文件(确定但缓慢)。或者,您可以请求远程文件的更新时间和长度,并查看它们与本地文件的对应关系。在另一个极端,您可以在另一台计算机上对 RPC 运行 md5 检查。

您可能想查看 filecmp对于不同的比较选项,以及某些情况下可能的实际构建 block 。

关于python - genfromtxt : how to disable caching,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30139451/

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