pub enum TensorValue {
Tensor(Arc<Tensor>),
View(TensorOwnedView),
}Expand description
Owned tensor value that can be compact or a lazy view.
TensorValue is the owned counterpart to TensorRead. It is suitable for
storing eager results that should remain lazy until an operation actually
requires compact materialized storage.
Variants§
Tensor(Arc<Tensor>)
View(TensorOwnedView)
Implementations§
Source§impl TensorValue
impl TensorValue
pub fn from_tensor(tensor: Tensor) -> TensorValue
pub fn from_tensor_arc(tensor: Arc<Tensor>) -> TensorValue
pub fn as_tensor_arc(&self) -> Option<&Arc<Tensor>>
pub fn dtype(&self) -> DType
pub fn shape(&self) -> &[usize]
pub fn tensor_read(&self) -> TensorRead<'_>
Sourcepub fn transpose_view(
&self,
axes: impl AsRef<[usize]>,
) -> Result<TensorValue, Error>
pub fn transpose_view( &self, axes: impl AsRef<[usize]>, ) -> Result<TensorValue, Error>
§Errors
Returns crate::Error::Validation with
tenferro_tensor_core::ValidationError::InvalidPermutationLength,
tenferro_tensor_core::ValidationError::AxisOutOfBounds, or
tenferro_tensor_core::ValidationError::DuplicateAxis when axes is
not a valid permutation of the value rank.
Sourcepub fn reshape_view(
&self,
shape: impl IntoShapeVec,
) -> Result<TensorValue, Error>
pub fn reshape_view( &self, shape: impl IntoShapeVec, ) -> Result<TensorValue, Error>
§Errors
Returns crate::Error::Validation with
tenferro_tensor_core::ValidationError::NonContiguousViewAsSlice when
the source is not compact column-major,
tenferro_tensor_core::ValidationError::ShapeMismatch (whose
tenferro_tensor_core::ShapeMismatch::ReshapeElementCount source
records the counts) when element counts differ,
tenferro_tensor_core::ValidationError::IntegerOverflow for shape
arithmetic overflow, or
tenferro_tensor_core::ValidationError::ViewOutOfBounds when the
reshaped view exceeds the backing buffer.
Sourcepub fn slice_view(&self, config: &SliceConfig) -> Result<TensorValue, Error>
pub fn slice_view(&self, config: &SliceConfig) -> Result<TensorValue, Error>
§Errors
Returns crate::Error::Validation with
tenferro_tensor_core::ValidationError::RankMismatch when a slice
vector does not match the value rank,
tenferro_tensor_core::ValidationError::InvalidArgument when a bound
or stride cannot be represented or is invalid,
tenferro_tensor_core::ValidationError::InvalidSliceStep or
tenferro_tensor_core::ValidationError::InvalidSliceBounds for slice
parameters, tenferro_tensor_core::ValidationError::IntegerOverflow
for slice arithmetic overflow, or
tenferro_tensor_core::ValidationError::ViewOutOfBounds when the
result exceeds the backing buffer.
Sourcepub fn broadcast_in_dim_view(
&self,
shape: impl IntoShapeVec,
dims: impl AsRef<[usize]>,
) -> Result<TensorValue, Error>
pub fn broadcast_in_dim_view( &self, shape: impl IntoShapeVec, dims: impl AsRef<[usize]>, ) -> Result<TensorValue, Error>
§Errors
Returns crate::Error::Validation with
tenferro_tensor_core::ValidationError::RankMismatch,
tenferro_tensor_core::ValidationError::AxisOutOfBounds, or
tenferro_tensor_core::ValidationError::DuplicateAxis for invalid
dimension mappings,
tenferro_tensor_core::ValidationError::ShapeDataLengthMismatch for
incompatible extents,
tenferro_tensor_core::ValidationError::ViewOutOfBounds when the
result exceeds the backing buffer, or
tenferro_tensor_core::ValidationError::IntegerOverflow for layout
arithmetic overflow.
Trait Implementations§
Source§impl Clone for TensorValue
impl Clone for TensorValue
Source§fn clone(&self) -> TensorValue
fn clone(&self) -> TensorValue
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for TensorValue
impl !RefUnwindSafe for TensorValue
impl Send for TensorValue
impl Sync for TensorValue
impl Unpin for TensorValue
impl UnsafeUnpin for TensorValue
impl !UnwindSafe for TensorValue
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 more