Struct SparseTensorIndexCOO
pub struct SparseTensorIndexCOO<'a> {
pub _tab: Table<'a>,
}
Expand description
EXPERIMENTAL: Data structures for sparse tensors Coordinate (COO) format of sparse tensor index.
COO’s index list are represented as a NxM matrix, where N is the number of non-zero values, and M is the number of dimensions of a sparse tensor.
indicesBuffer stores the location and size of the data of this indices matrix. The value type and the stride of the indices matrix is specified in indicesType and indicesStrides fields.
For example, let X be a 2x3x4x5 tensor, and it has the following 6 non-zero values:
X[0, 1, 2, 0] := 1
X[1, 1, 2, 3] := 2
X[0, 2, 1, 0] := 3
X[0, 1, 3, 0] := 4
X[0, 1, 2, 1] := 5
X[1, 2, 0, 4] := 6
In COO format, the index matrix of X is the following 4x6 matrix:
[[0, 0, 0, 0, 1, 1],
[1, 1, 1, 2, 1, 2],
[2, 2, 3, 1, 2, 0],
[0, 1, 0, 0, 3, 4]]
When isCanonical is true, the indices is sorted in lexicographical order (row-major order), and it does not have duplicated entries. Otherwise, the indices may not be sorted, or may have duplicated entries.
Fields§
§_tab: Table<'a>
Implementations§
§impl<'a> SparseTensorIndexCOO<'a>
impl<'a> SparseTensorIndexCOO<'a>
pub const VT_INDICESTYPE: u16 = 4u16
pub const VT_INDICESSTRIDES: u16 = 6u16
pub const VT_INDICESBUFFER: u16 = 8u16
pub const VT_ISCANONICAL: u16 = 10u16
pub unsafe fn init_from_table(table: Table<'a>) -> SparseTensorIndexCOO<'a>
pub fn create<'bldr, 'args, 'mut_bldr, A>(
_fbb: &'mut_bldr mut FlatBufferBuilder<'bldr, A>,
args: &'args SparseTensorIndexCOOArgs<'args>,
) -> WIPOffset<SparseTensorIndexCOO<'bldr>>where
'bldr: 'args,
'args: 'mut_bldr,
A: Allocator + 'bldr,
pub fn indicesType(&self) -> Int<'a>
pub fn indicesType(&self) -> Int<'a>
The type of values in indicesBuffer
pub fn indicesStrides(&self) -> Option<Vector<'a, i64>>
pub fn indicesStrides(&self) -> Option<Vector<'a, i64>>
Non-negative byte offsets to advance one value cell along each dimension If omitted, default to row-major order (C-like).
pub fn indicesBuffer(&self) -> &'a Buffer
pub fn indicesBuffer(&self) -> &'a Buffer
The location and size of the indices matrix’s data
pub fn isCanonical(&self) -> bool
pub fn isCanonical(&self) -> bool
This flag is true if and only if the indices matrix is sorted in row-major order, and does not have duplicated entries. This sort order is the same as of Tensorflow’s SparseTensor, but it is inverse order of SciPy’s canonical coo_matrix (SciPy employs column-major order for its coo_matrix).
Trait Implementations§
§impl<'a> Clone for SparseTensorIndexCOO<'a>
impl<'a> Clone for SparseTensorIndexCOO<'a>
§fn clone(&self) -> SparseTensorIndexCOO<'a>
fn clone(&self) -> SparseTensorIndexCOO<'a>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for SparseTensorIndexCOO<'_>
impl Debug for SparseTensorIndexCOO<'_>
§impl<'a> Follow<'a> for SparseTensorIndexCOO<'a>
impl<'a> Follow<'a> for SparseTensorIndexCOO<'a>
type Inner = SparseTensorIndexCOO<'a>
§impl<'a> PartialEq for SparseTensorIndexCOO<'a>
impl<'a> PartialEq for SparseTensorIndexCOO<'a>
§impl Verifiable for SparseTensorIndexCOO<'_>
impl Verifiable for SparseTensorIndexCOO<'_>
§fn run_verifier(
v: &mut Verifier<'_, '_>,
pos: usize,
) -> Result<(), InvalidFlatbuffer>
fn run_verifier( v: &mut Verifier<'_, '_>, pos: usize, ) -> Result<(), InvalidFlatbuffer>
pos
in the verifier’s buffer.
Should not need to be called directly.impl<'a> Copy for SparseTensorIndexCOO<'a>
impl<'a> StructuralPartialEq for SparseTensorIndexCOO<'a>
Auto Trait Implementations§
impl<'a> Freeze for SparseTensorIndexCOO<'a>
impl<'a> RefUnwindSafe for SparseTensorIndexCOO<'a>
impl<'a> Send for SparseTensorIndexCOO<'a>
impl<'a> Sync for SparseTensorIndexCOO<'a>
impl<'a> Unpin for SparseTensorIndexCOO<'a>
impl<'a> UnwindSafe for SparseTensorIndexCOO<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request