儲存與載入陣列#
MLX 支援多種陣列序列化格式。
格式 |
副檔名 |
函式 |
備註 |
|---|---|---|---|
NumPy |
|
僅支援單一陣列 |
|
NumPy 封存 |
|
多個陣列 |
|
Safetensors |
|
多個陣列 |
|
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})