首页 > 编程知识 正文

关于工作的思维导,思维导工作

时间:2023-05-03 05:23:44 阅读:195810 作者:4780

点击图片看大图



Python的Joblib库 使您的Python工作更快!

参考文献
ohttp://www.cnblogs.com/cobbliu/archive/2012/09/04/2670178.html
ohttps://blog.csdn.net/red_stone1/article/details/71156441?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160448461219725255554613%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160448461219725255554613&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v28-3-71156441.pc_search_result_cache&utm_term=joblib&spm=1018.2118.3001.4449
ohttps://blog.csdn.net/weixin_26711867/article/details/109122421?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160448461219725255554613%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160448461219725255554613&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v28-1-109122421.pc_search_result_cache&utm_term=joblib&spm=1018.2118.3001.4449
同类库文件
ocPickle
值得一提的是,pickle 模块及其同类模块 cPickle 向 Python 提供了 pickle 支持。后者是用 C 编码的,它具有更好的性能,对于大多数应用程序,推荐使用该模块。
对于大数据而言,joblib比pickle更加高效,但是joblib只能将对象存储在磁盘文件中,不能保存为字符串。
joblib库的安装
opip install joblib
joblib库的简介
o推荐joblib的原因
Can be easily integrated
可以轻松整合
No specific dependencies
没有特定的依赖
Saves cost and time
节省成本和时间
Easy to learn
简单易学
o定义
Joblib是一组在Python中提供轻量级管道的工具。
Joblib经过了优化,特别是在处理大型数据时速度更快、更健壮,并且对numpy数组进行了特定的优化。
o特点
函数的透明磁盘缓存
延迟重新计算(记忆模式)
简单并行计算
o为什么选择joblib?
1.使用缓存的结果 (1. Using Cached results)
通过缓存来加速管线的超级能力
 使用相同的输入数据可能会多次调用某些功能,并且计算会再次发生。
 Joblib提供了一种更好的避免重复计算相同函数的方法,从而节省了大量时间和计算成本。
2.并行化 (2. Parallelization)
3.转储和加载 (3. Dump and Load)
4.压缩方式(4. Compression methods)
joblib库的使用方法
o1、输出值的透明快速磁盘缓存
Python函数的类似memoize或make的功能,适用于任意Python对象,包括非常大的numpy数组。通过将操作写成一组具有定义良好的输入和输出的步骤,将持久性和流执行逻辑与域逻辑或算法代码分离开来:Python函数。Joblib可以节省他们的计算到磁盘和重新运行,只有在必要时:
>>> from joblib import Memory>>> cachedir = ‘your_cache_dir_goes_here’>>> mem = Memory(cachedir)>>> import numpy as np>>> a = np.vander(np.arange(3)).astype(np.float)>>> square = mem.cache(np.square)>>> b = square(a)
[Memory] Calling square…
square(array([[0., 0., 1.],
 [1., 1., 1.],
 [4., 2., 1.]]))
>>> c = square(a)
>>> # The above call did not trigger an evaluation
o2、高度并行助手:使它容易编写可读并行代码和调试它迅速
>>> from joblib import Parallel, delayed
parallel
delayed
>>> from math import sqrt
>>> Parallel(n_jobs=1)(delayed(sqrt)(i**2) for i in range(10))
为了使用多线程,只需在构造Parallel的时候设置backend='threading’即可:
oParallel(n_jobs=2, backend=“threading”)( … delayed(sqrt)(i ** 2) for i in range(10))
output
[0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
o3、快速压缩持久化
替代pickle,有效地处理包含大数据的Python对象(joblib)。转储& joblib。负载)。

参考文献:

http://www.cnblogs.com/cobbliu/archive/2012/09/04/2670178.htmlhttps://blog.csdn.net/red_stone1/article/details/71156441?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160448461219725255554613%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160448461219725255554613&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v28-3-71156441.pc_search_result_cache&utm_term=joblib&spm=1018.2118.3001.4449https://blog.csdn.net/weixin_26711867/article/details/109122421?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160448461219725255554613%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160448461219725255554613&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v28-1-109122421.pc_search_result_cache&utm_term=joblib&spm=1018.2118.3001.4449

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。