Skip to main content

ClikaRT::NamedTensors

class

Header: ClikaRT/compute/named_tensors.h

A name → Tensor collection: the container for a model's weights / state-dict and for multi-tensor I/O (safetensors, gguf). Entries are Tensors (shared refcount handles), so set/get are cheap and the map shares each tensor's storage rather than copying data.

An insertion-agnostic name → Tensor map. Copyable and movable (a copy shares each entry's storage; the tensors are refcount handles). A moved-from NamedTensors is empty: every read answers empty / false / 0, and set fills it again (a dict moved into load_state_dict stays a usable object).

Member functions​

NamedTensors()​

NamedTensors()

An empty collection.

Declared in ClikaRT/compute/named_tensors.h, line 33

NamedTensors(NamedTensors)​

NamedTensors(const NamedTensors& other)

Copy: an independent map; the tensor VALUES stay shared handles (storage is not duplicated).

Declared in ClikaRT/compute/named_tensors.h, line 37

operator=(NamedTensors)​

NamedTensors& operator=(const NamedTensors& other)

Copy-assign; same handle-sharing semantics as the copy ctor.

Declared in ClikaRT/compute/named_tensors.h, line 39

NamedTensors(NamedTensors)​

NamedTensors(NamedTensors&& other) noexcept

Move: transfers the map; other is left empty and stays usable.

Declared in ClikaRT/compute/named_tensors.h, line 41

operator=(NamedTensors)​

NamedTensors& operator=(NamedTensors&& other) noexcept

Move-assign; transfers the map; other is left empty and stays usable.

Declared in ClikaRT/compute/named_tensors.h, line 43

~NamedTensors()​

~NamedTensors()

Releases the map (each held handle drops its reference).

Declared in ClikaRT/compute/named_tensors.h, line 45

set()​

void set(std::string_view name, Tensor tensor)

Insert or replace the tensor under name. name is copied.

Declared in ClikaRT/compute/named_tensors.h, line 48

get()​

Tensor get(std::string_view name) const

The tensor under name; raises ClikaRT::Error (NotFound) if absent.

Declared in ClikaRT/compute/named_tensors.h, line 51

contains()​

bool contains(std::string_view name) const

True if name is present.

Declared in ClikaRT/compute/named_tensors.h, line 53

size()​

std::size_t size() const

Number of entries.

Declared in ClikaRT/compute/named_tensors.h, line 55

names()​

std::vector<std::string> names() const

All entry names (unordered).

Declared in ClikaRT/compute/named_tensors.h, line 57

for_each()​

void for_each(const std::function<void(std::string_view name, const Tensor&tensor)>& visit) const

Visit each entry. name and tensor are valid only during the call.

A throw from visit is contained HERE, in your own TU / runtime, never unwinding through the library frame (a cross-runtime unwind into the Release .so's static C++ runtime terminates), and stops the walk, and surfaces as the raised ClikaRT::Error / returned failure. To stop the walk early WITHOUT an error, use for_each_while.

Declared in ClikaRT/compute/named_tensors.h, line 65

for_each_while()​

void for_each_while(
    const std::function<bool(std::string_view name, const Tensor&tensor)>& visit
) const

The abort-capable sibling: visit returns false to stop the walk early (a clean stop, not an error). A throw is contained exactly as in for_each.

Declared in ClikaRT/compute/named_tensors.h, line 75