儲存與載入陣列

儲存與載入陣列#

MLX 支援多種陣列序列化格式。

序列化格式#

格式

副檔名

函式

備註

NumPy

.npy

save()

僅支援單一陣列

NumPy 封存

.npz

savez()savez_compressed()

多個陣列

Safetensors

.safetensors

save_safetensors()

多個陣列

GGUF

.gguf

save_gguf()

多個陣列

load() 函式可載入任何支援的序列化格式。它會依副檔名判斷格式。load() 的輸出會依格式而定。

以下是將單一陣列儲存到檔案的範例:

>>> a = mx.array([1.0])
>>> mx.save("array", a)

陣列 a 會儲存為 ``array.npy``(注意副檔名會自動加上)。是否包含副檔名是可選的;若省略就會自動加上。你可以用以下方式載入陣列:

>>> mx.load("array.npy")
array([1], dtype=float32)

以下是將多個陣列儲存到單一檔案的範例:

>>> a = mx.array([1.0])
>>> b = mx.array([2.0])
>>> mx.savez("arrays", a, b=b)

為了與 numpy.savez() 相容,MLX 的 savez() 以陣列作為引數。若未提供關鍵字,會使用預設名稱。可透過以下方式載入:

>>> mx.load("arrays.npz")
{'b': array([2], dtype=float32), 'arr_0': array([1], dtype=float32)}

在此情況下 load() 會回傳名稱到陣列的字典。

save_safetensors()save_gguf() 類似於 savez(),但它們的輸入是字串名稱到陣列的 dict

>>> a = mx.array([1.0])
>>> b = mx.array([2.0])
>>> mx.save_safetensors("arrays", {"a": a, "b": b})