文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
8.3 磁盘缓存修饰器
在数据科学和机器学习中,我们会对较大规模的数据集进行处理,这样每次对模型做出修改后,便无须对这些数据重复进行预处理。因此,我们希望将数据处理的中间结果保存在磁盘中的公共位置。这样,以后便可以检查该文件是否已经存在。
本节将介绍一个负责缓存和加载的函数修饰器。它利用Python的pickle功能实现了对被修饰的函数的任意返回值的序列化和反序列化。然而,这也意味着它仅适用于恰好能纳入主存的数据集。对于较大规模的数据集,可参考一些科学数据集格式,如HDF5。
现在利用这一点编写@disk_cache修饰器,它将函数的实参传递给被修饰的函数。这些函数参数也用于确定这些参数的组合是否存在一个缓存的结果。为此,它们通过散列映射为一个预先为文件名准备的数字。
下面给出一个利用磁盘缓存修饰器保存数据处理流水线的例子。
对于方法,有一个method=False的参数用于通知修饰器是否将第一个参数忽略。在方法和类方法中,第一个参数为对象实例self,它在每次程序运行时都是不同的,因此不应当用于判断是否有可用的缓存。对于类外部的静态方法和函数,它应为False。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论