如何保存训练后得到的词向量?
方法:使用numpy库中的savez()方法直接进行保存。
方法介绍:
import numpy as np
使用np.savez()方法保存词向量存储为npz文件。
- npz文件:是numpy库中的一种数据格式,它是一种压缩文件,可以保存多个数组和元数据。
另外一种方法:np.save(),存储得到的是npy文件。
npy文件和npz文件是NumPy库中用于存储数组数据的两种不同格式,它们在用途、功能以及存储方式上存在一些区别和联系。
用途与功能:
- .npy文件:用于存储单个NumPy数组。它直接存储数组数据,包括数组的形状(维度)、数据类型以及其他必要的元数据信息,以确保数据的完整性和可恢复性。这种格式在科学计算和数据分析中非常常见,特别是在需要将数据快速保存到磁盘或在不同环境间共享NumPy数组时。
- .npz文件:用于存储多个NumPy数组。它是一个压缩文件,可以包含多个.npy文件,每个文件存储一个数组。这种格式在需要同时保存和管理多个数组时非常有用,可以有效地减小文件的大小,节省存储空间。
存储方式:
- .npy文件:以二进制形式存储数据,这种存储方式比文本文件(如CSV)更加高效,特别是对于大型数组数据。二进制格式允许直接映射到内存,从而加快了读写速度。
- .npz文件:采用压缩存储格式,将多个NumPy数组压缩成一个文件。这种压缩方式不仅减小了文件的大小,还方便了数据的组织和管理。
文件大小:
- 对于存储相同数量的数据,.npy文件的总大小通常与数组的总大小成正比。
- 而.npz文件由于是压缩文件,其大小可能会小于相应的多个.npy文件的总大小。
加载方式:
- 加载.npy文件会直接返回一个NumPy数组。
- 加载.npz文件会返回一个类似于字典的对象,你需要通过数组的名称来访问各个数组。
联系
- 共同目的:npy文件和npz文件都是NumPy库用于存储数组数据的文件格式,它们的共同目的是为了方便地保存、加载和处理数组数据。
- 相互转换:虽然npy文件和npz文件在存储方式和用途上有所不同,但你可以通过NumPy库提供的函数将它们相互转换。
例如,你可以将多个.npy文件合并为一个.npz文件,或者从.npz文件中提取出单个的.npy文件。
而对于保存模型训练后得到的词向量,使用savez()方法存储为.npz文件更好,对于数据量大的文件尤其适合。
代码1:
import numpy as np
"""保存词向量为npy文件---save()方法"""
a = np.random.randint(5, size=(2, 4)) #随机生成2行4列的数据,数据值为0~5之间
np.save('test.npy', a)#
b = np.load('test.npy')
print(b)
运行结果:
代码2:
import numpy as np
"""存储词向量为npz文件-----savez()方法"""
a = np.random.randint(0, 10, (3,), dtype='int')
b = np.random.randint(0, 10, (3,), dtype='int')
c = np.random.randint(0, 10, (3,), dtype='int')
np.savez('test.npz', file1 = a, file2 =b, file3 = c) #压缩存储数组,并给数组分别命名
运行结果:
代码3
import numpy as np
"""使用load()方法导入保存的npz文件"""
data = np.load('test.npz')
print(data.files)
aa = data[data.files[0]]
bb = data[data.files[1]]
cc = data[data.files[2]]
print('read:', aa, bb, cc)
运行结果:
end