返回介绍

8.3 磁盘缓存修饰器

发布于 2024-02-05 23:12:36 字数 899 浏览 0 评论 0 收藏 0

在数据科学和机器学习中,我们会对较大规模的数据集进行处理,这样每次对模型做出修改后,便无须对这些数据重复进行预处理。因此,我们希望将数据处理的中间结果保存在磁盘中的公共位置。这样,以后便可以检查该文件是否已经存在。

本节将介绍一个负责缓存和加载的函数修饰器。它利用Python的pickle功能实现了对被修饰的函数的任意返回值的序列化和反序列化。然而,这也意味着它仅适用于恰好能纳入主存的数据集。对于较大规模的数据集,可参考一些科学数据集格式,如HDF5。

现在利用这一点编写@disk_cache修饰器,它将函数的实参传递给被修饰的函数。这些函数参数也用于确定这些参数的组合是否存在一个缓存的结果。为此,它们通过散列映射为一个预先为文件名准备的数字。

下面给出一个利用磁盘缓存修饰器保存数据处理流水线的例子。

对于方法,有一个method=False的参数用于通知修饰器是否将第一个参数忽略。在方法和类方法中,第一个参数为对象实例self,它在每次程序运行时都是不同的,因此不应当用于判断是否有可用的缓存。对于类外部的静态方法和函数,它应为False。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文