Python的joblib模型固化函数解析
作者:goodxin_ie
joblib模型固化
joblib提供了三个与对象序列化和模型固化相关的函数hash,dump,load。
joblib.hash主要是为了提供一个numpy对象的hash方法, joblib.dump
并 joblib.load
替代了pickle,使其可以在包含大数据(尤其是大型numpy数组)的任意Python对象上高效工作。
hash
joblib.hash(obj,hash_name ='md5',coerce_mmap = False )
参数:
hash_name:'md5'或'sha1'
使用哈希算法。sha1应该更安全,但是md5更快。
- coerce_mmap:布尔值
- np.memmap和np.ndarray之间没有区别
快速计算哈希值,以唯一标识包含numpy数组的Python对象。主要是因为python自带的hash函数不支持numpy对象的hash值计算。
dump
joblib.dump(value, filename, compress=0, protocol=None)
value:任何Python对象,要存储到磁盘的对象。
文件名:str,pathlib.Path或文件对象。
要在其中存储文件的文件对象或文件路径。与支持的文件扩展名之一(“ .z”,“。gz”,“。bz2”,“。xz”或“ .lzma”)对应的压缩方法将自动使用。
compress:int从0到9或bool或2元组,可选
数据的可选压缩级别。0或False不压缩。较高的值表示更多的压缩,但同时也降低了读写时间。使用3值通常是一个很好的折衷方案。有关更多详细信息,请参见注释。
如果compress为True,则使用的压缩级别为3。如果compress为2元组,则第一个元素必须对应于受支持的压缩器之间的字符串(例如'zlib','gzip','bz2','lzma''xz '),第二个元素必须是0到9的整数,对应于压缩级别。
protocol:不用管了,与pickle里的protocol参数一样
>>> # Dumping in a gzip compressed file using a compress level of 3. >>> joblib.dump(to_persist, filename + '.gz', compress=('gzip', 3)) # doctest: +ELLIPSIS ['...test.joblib.gz'] >>> joblib.load(filename + '.gz') [('a', [1, 2, 3]), ('b', array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]))] >>> joblib.dump(to_persist, filename + '.bz2', compress=('bz2', 3)) # doctest: +ELLIPSIS ['...test.joblib.bz2'] >>> joblib.load(filename + '.bz2') [('a', [1, 2, 3]), ('b', array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]))]
该函数的 compress
参数 joblib.dump()
还接受与所用压缩器名称相对应的字符串。使用此选项时,压缩器将使用默认压缩级别:
>>> joblib.dump(to_persist, filename + '.gz', compress='gzip') # doctest: +ELLIPSIS ['...test.joblib.gz']
load
joblib.load(filename, mmap_mode=None)
filename:str,pathlib.Path或文件对象。要从中加载对象的文件对象或文件路径
mmap_mode:{无,'r +','r','w +','c'},可选
如果不是“None”,则从磁盘对阵列进行内存映射。
此模式对压缩文件无效。请注意,在这种情况下,重建对象可能不再与原始腌制对象完全匹配
*mmap_mode为None时加载后的对象就是普通的python对象,否则就是磁盘上的ying映射,每次使用douy都要从磁盘读取
到此这篇关于Python的joblib模型固化函数解析的文章就介绍到这了,更多相关joblib模型固化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!