Joblib:将Python函数作为管道作业运行 ¶
介绍 ¶
函数的透明磁盘存储和延迟重新评估 (记忆模式) 简单的并行计算
愿景 ¶
避免两次计算同一事物 :代码经常重新运行,并且 同样,例如,当对计算繁重的工作进行原型设计时(如 科学发展),但手工解决方案可以缓解这一问题 这个问题很容易出错,往往会导致不可重复的结果。
透明地保存到磁盘 :高效持久 包含大量数据的任意对象是很难的。 使用 joblib的缓存机制避免了手写持久性和 隐式地将磁盘上的文件链接到 原始Python对象。 因此,joblib的持久性是 适用于恢复应用程序状态或计算作业,例如 撞车后。
主要功能 ¶
输出值的透明快速磁盘存储: 备忘录或 适用于Python函数的make-like功能 任意Python对象,包括非常大的numpy数组。 分开 域逻辑或算法的持久性和流执行逻辑 通过将操作编写为一组定义良好的步骤进行编码 输入和输出:Python函数。 Joblib可以拯救他们 计算到磁盘并仅在必要时重新运行: >>> 从 作业库 进口 存储器 >>> 缓存目录 = 'your_cache_dir_goes_here' >>> 微机 = 存储器 ( 缓存目录 ) >>> 进口 笨蛋 作为 净现值 >>> 一 = 净现值 . 范德 ( 净现值 . 阿兰奇 ( 三 )) . astype类型 ( 浮动 ) >>> 广场 = 微机 . 隐藏物 ( 净现值 . 广场 ) >>> b条 = 广场 ( 一 ) ______________________________________________________________________... [内存]调用方块。。。 正方形(数组([0.,0.,1.], [1., 1., 1.], [4., 2., 1.]])) _________________________________________________。。。 正方形-。。。 s、 0.0分钟 >>> c(c) = 广场 ( 一 ) >>> #上述调用未触发评估 令人尴尬的并行助手: 使其易于阅读 并行代码并快速调试: >>> 从 作业库 进口 平行 , 延迟 >>> 从 数学 进口 平方英尺 >>> 平行 ( n个作业 = 1 )( 延迟 ( 平方英尺 )( 我 ** 2 ) 对于 我 在里面 范围 ( 10 )) [0.0、1.0、2.0、3.0、4.0、5.0、6.0、7.0、8.0、9.0] 快速压缩持久性 :泡菜的替代品 有效地处理包含大数据的Python对象( 作业库.dump & 作业库.加载 ).