ArrayRecordยถ
- class ArrayRecord[์์ค]ยถ
- class ArrayRecord(array_dict: dict[str, Array], *, keep_input: bool = True)
- class ArrayRecord(numpy_ndarrays: list[ndarray[Any, dtype[Any]]], *, keep_input: bool = True)
- class ArrayRecord(torch_state_dict: dict[str, torch.Tensor] | dict[str, Any], *, keep_input: bool = True)
๊ธฐ๋ฐ ํด๋์ค:
TypedDict[str,Array],InflatableObjectArray record.
A typed dictionary (
strtoArray) that can store named arrays, including model parameters, gradients, embeddings or non-parameter arrays. Internally, this behaves similarly to andict[str, Array]. AnArrayRecordcan be viewed as an equivalent to PyTorchโsstate_dict, but it holds arrays in a serialized form.This object is one of the record types supported by
RecordDictand can therefore be stored in thecontentof aMessageor thestateof aContext.This class can be instantiated in multiple ways:
By providing nothing (empty container).
By providing a dictionary of
Array(via thearray_dictargument).By providing a list of NumPy
ndarray(via thenumpy_ndarraysargument).By providing a PyTorch
state_dict(via thetorch_state_dictargument).
- ๋งค๊ฐ๋ณ์:
array_dict (Optional[dict[str, Array]] (default: None)) โ An existing dictionary containing named
Arrayinstances. If provided, these entries will be used directly to populate the record.numpy_ndarrays (Optional[list[NDArray]] (default: None)) โ A list of NumPy arrays. Each array will be automatically converted into an
Arrayand stored in this record with generated keys.torch_state_dict (Optional[dict[str, torch.Tensor]] (default: None)) โ A PyTorch
state_dict(strkeys totorch.Tensorvalues). Each tensor will be converted into anArrayand stored in this record.keep_input (bool (default: True)) โ If
False, entries from the input are removed after being added to this record to free up memory. IfTrue, the input remains unchanged. Regardless of this value, no duplicate memory is used if the input is a dictionary ofArray, i.e.,array_dict.
์์
Initializing an empty ArrayRecord:
record = ArrayRecord()
Initializing with a dictionary of
Array:arr = Array("float32", [5, 5], "numpy.ndarray", b"serialized_data...") record = ArrayRecord({"weight": arr})
Initializing with a list of NumPy arrays:
import numpy as np arr1 = np.random.randn(3, 3) arr2 = np.random.randn(2, 2) record = ArrayRecord([arr1, arr2])
Initializing with a PyTorch model state_dict:
import torch.nn as nn model = nn.Linear(10, 5) record = ArrayRecord(model.state_dict())
Initializing with a TensorFlow model weights (a list of NumPy arrays):
import tensorflow as tf model = tf.keras.Sequential([tf.keras.layers.Dense(5, input_shape=(10,))]) record = ArrayRecord(model.get_weights())
๋ฉ์๋
clear()copy()Return a shallow copy of the dictionary.
์ด ๊ฐ์ฒด์ ์ ์ฅ๋ ๋ฐ์ดํธ ์๋ฅผ ๋ฐํํฉ๋๋ค.
deflate()Deflate the ArrayRecord.
from_array_dict(array_dict, *[, keep_input])Create ArrayRecord from a dictionary of
Array.from_numpy_ndarrays(ndarrays, *[, keep_input])Create ArrayRecord from a list of NumPy
ndarray.from_torch_state_dict(state_dict, *[, ...])Create ArrayRecord from PyTorch
state_dict.get(k[,d])inflate(object_content[, children])Inflate an ArrayRecord from bytes.
items()keys()pop(k[,d])ํค๋ฅผ ์ฐพ์ ์ ์์ผ๋ฉด ์ฃผ์ด์ง ๊ฒฝ์ฐ d๊ฐ ๋ฐํ๋๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด KeyError๊ฐ ๋ฐ์ํฉ๋๋ค.
popitem()as a 2-tuple; but raise KeyError if D is empty.
setdefault(k[,d])to_numpy_ndarrays(*[, keep_input])Return the ArrayRecord as a list of NumPy
ndarray.to_torch_state_dict(*[, keep_input])Return the ArrayRecord as a PyTorch
state_dict.update([E, ]**F)If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v
values()์์ฑ
Return a dictionary of Arrays with their Object IDs as keys.
Check if the object is dirty after the last deflation.
Get object ID.
- property children: dict[str, InflatableObject]ยถ
Return a dictionary of Arrays with their Object IDs as keys.
- clear() None. Remove all items from D.ยถ
- copy() Selfยถ
Return a shallow copy of the dictionary.
- count_bytes() int[์์ค]ยถ
์ด ๊ฐ์ฒด์ ์ ์ฅ๋ ๋ฐ์ดํธ ์๋ฅผ ๋ฐํํฉ๋๋ค.
์ญ์ง๋ ฌํ์ ํ์ํ ์ง๋ ฌํ๋ ๊ฐ์ฒด์ ๋ฉํ๋ฐ์ดํฐ(์: NumPy ๋ฐฐ์ด)์ ํด๋นํ๋ ์๋์ ๋ฐ์ดํธ๋ ์ด ์นด์ดํ ์ ํฌํจ๋ ์ ์์ต๋๋ค.
- classmethod from_array_dict(array_dict: dict[str, Array], *, keep_input: bool = True) ArrayRecord[์์ค]ยถ
Create ArrayRecord from a dictionary of
Array.
- classmethod from_numpy_ndarrays(ndarrays: list[ndarray[Any, dtype[Any]]], *, keep_input: bool = True) ArrayRecord[์์ค]ยถ
Create ArrayRecord from a list of NumPy
ndarray.
- classmethod from_torch_state_dict(state_dict: dict[str, torch.Tensor], *, keep_input: bool = True) ArrayRecord[์์ค]ยถ
Create ArrayRecord from PyTorch
state_dict.
- get(k[, d]) D[k] if k in D, else d. d defaults to None.ยถ
- classmethod inflate(object_content: bytes, children: dict[str, InflatableObject] | None = None) ArrayRecord[์์ค]ยถ
Inflate an ArrayRecord from bytes.
- ๋งค๊ฐ๋ณ์:
object_content (bytes) โ The deflated object content of the ArrayRecord.
children (Optional[dict[str, InflatableObject]] (default: None)) โ Dictionary of children InflatableObjects mapped to their Object IDs. These children enable the full inflation of the ArrayRecord.
- ๋ฐํ:
The inflated ArrayRecord.
- ๋ฐํ ํ์:
- property is_dirty: boolยถ
Check if the object is dirty after the last deflation.
- items() a set-like object providing a view on D's items.ยถ
- keys() a set-like object providing a view on D's keys.ยถ
- property object_id: strยถ
Get object ID.
- pop(k[, d]) v, remove specified key and return the corresponding value.ยถ
ํค๋ฅผ ์ฐพ์ ์ ์์ผ๋ฉด ์ฃผ์ด์ง ๊ฒฝ์ฐ d๊ฐ ๋ฐํ๋๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด KeyError๊ฐ ๋ฐ์ํฉ๋๋ค.
- popitem() (k, v), remove and return some (key, value) pairยถ
as a 2-tuple; but raise KeyError if D is empty.
- setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in Dยถ
- to_numpy_ndarrays(*, keep_input: bool = True) list[ndarray[Any, dtype[Any]]][์์ค]ยถ
Return the ArrayRecord as a list of NumPy
ndarray.
- to_torch_state_dict(*, keep_input: bool = True) OrderedDict[str, torch.Tensor][์์ค]ยถ
Return the ArrayRecord as a PyTorch
state_dict.
- update([E, ]**F) None. Update D from mapping/iterable E and F.ยถ
If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v
- values() an object providing a view on D's values.ยถ