Skip to main content

ValueType

Enum ValueType 

Source
pub enum ValueType {
    Tensor {
        ty: TensorElementType,
        shape: Shape,
        dimension_symbols: SymbolicDimensions,
    },
    Sequence(Box<ValueType>),
    Map {
        key: TensorElementType,
        value: TensorElementType,
    },
    Optional(Box<ValueType>),
}
Expand description

The type of a Value, or a session input/output.

// `ValueType`s can be obtained from session inputs/outputs:
let input = &session.inputs()[0];
assert_eq!(
	input.dtype(),
	&ValueType::Tensor {
		ty: TensorElementType::Float32,
		// Our model's input has 3 dynamic dimensions, represented by -1
		shape: Shape::new([-1, -1, -1, 3]),
		// Dynamic dimensions may also have names.
		dimension_symbols: SymbolicDimensions::new([
			"unk__31".to_string(),
			"unk__32".to_string(),
			"unk__33".to_string(),
			String::default()
		])
	}
);

// ...or by `Value`s created in Rust or output by a session.
let value = Tensor::from_array(([5usize], vec![1_i64, 2, 3, 4, 5].into_boxed_slice()))?;
assert_eq!(
	value.dtype(),
	&ValueType::Tensor {
		ty: TensorElementType::Int64,
		shape: Shape::new([5]),
		dimension_symbols: SymbolicDimensions::new([String::default()])
	}
);

Variants§

§

Tensor

Value is a tensor/multi-dimensional array.

Fields

§ty: TensorElementType

Element type of the tensor.

§shape: Shape

Shape of the tensor. If an exact dimension is not known (i.e. a dynamic dimension as part of an Outlet), the dimension will be -1.

Actual tensor values (i.e. not Outlet definitions), which have a known dimension, will always have non-negative dimensions.

§dimension_symbols: SymbolicDimensions
§

Sequence(Box<ValueType>)

A sequence (vector) of other Values.

Per ONNX spec, only sequences of tensors and maps are allowed.

§

Map

A map/dictionary from one element type to another.

§

Optional(Box<ValueType>)

An optional value, which may or may not contain a Value.

Implementations§

Source§

impl ValueType

Source

pub fn tensor_shape(&self) -> Option<&Shape>

Returns the shape of this value type if it is a tensor, or None if it is a sequence or map.

let value: DynValue = Tensor::from_array(([5usize], vec![1_i64, 2, 3, 4, 5].into_boxed_slice()))?.into_dyn();

let shape = value.dtype().tensor_shape().unwrap();
assert_eq!(**shape, [5]);
Source

pub fn tensor_type(&self) -> Option<TensorElementType>

Returns the element type of this value type if it is a tensor, or None if it is a sequence or map.

let value = Tensor::from_array(([5usize], vec![1_i64, 2, 3, 4, 5].into_boxed_slice()))?;
assert_eq!(value.dtype().tensor_type(), Some(TensorElementType::Int64));
Source

pub fn is_tensor(&self) -> bool

Returns true if this value type is a tensor.

Source

pub fn is_sequence(&self) -> bool

Returns true if this value type is a sequence.

Source

pub fn is_map(&self) -> bool

Returns true if this value type is a map.

Trait Implementations§

Source§

impl Clone for ValueType

Source§

fn clone(&self) -> ValueType

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ValueType

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for ValueType

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for ValueType

Source§

impl PartialEq for ValueType

Source§

fn eq(&self, other: &ValueType) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for ValueType

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more