Joblib:将Python函数作为管道作业运行

介绍

Joblib是一组提供的工具轻量级流水线蟒蛇特别是:

  1. 函数的透明磁盘存储和延迟重新评估(记忆模式)

  2. 简单的并行计算

Joblib优化为快速的坚固耐用的大规模特别是数据,并对笨蛋数组。它是BSD许可.

愿景

愿景是提供工具以轻松实现更好的性能和处理长时间运行作业时的再现性。

  • 避免两次计算同一事物:代码经常重新运行,并且同样,例如,当对计算繁重的工作进行原型设计时(如科学发展),但手工解决方案可以缓解这一问题这个问题很容易出错,往往会导致不可重复的结果。

  • 透明地保存到磁盘:高效持久包含大量数据的任意对象是很难的。使用joblib的缓存机制避免了手写持久性和隐式地将磁盘上的文件链接到原始Python对象。因此,joblib的持久性是适用于恢复应用程序状态或计算作业,例如撞车后。

Joblib在解决这些问题的同时留下代码和流尽可能不修改控制(没有框架,没有新的范式)。

主要功能

  1. 输出值的透明快速磁盘存储:备忘录或适用于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) = 广场()
    >>>#上述调用未触发评估
    
  2. 令人尴尬的并行助手:使其易于阅读并行代码并快速调试:

    >>> 作业库 进口 平行, 延迟
    >>> 数学 进口 平方英尺
    >>>平行(n个作业=1)(延迟(平方英尺)(**2) 对于  在里面 范围(10))
    [0.0、1.0、2.0、3.0、4.0、5.0、6.0、7.0、8.0、9.0]
    
  3. 快速压缩持久性:泡菜的替代品有效地处理包含大数据的Python对象(作业库.dump&作业库.加载).

模块参考

存储器([位置,后端,mmap_mode,…])

一个上下文对象,用于在每次使用相同的输入参数调用函数时缓存其返回值。

平行([n_jobs,后端,return_as,…])

可读并行映射的帮助器类。

并行配置([后端,n_jobs,详细,…])

设置的默认后端或配置平行.

倾倒(值,文件名[,压缩,协议,…])

将任意Python对象持久化到一个文件中。

负载(文件名[,mmap_mode])

从使用joblib.dump持久化的文件中重建Python对象。

散列(对象[,哈希名称,强制映射])

快速计算散列以唯一标识包含numpy数组的Python对象。

寄存器压缩程序(压缩机名称,压缩机)

注册新压缩机。

不推荐的功能

并行后端(后端[,n_jobs,…])

在with块内更改Parallel使用的默认后端。